Comment puis-je vérifier si l’application de correctifs pour le système d’exploitation AWS Fargate a supprimé mes pods ou mes nœuds ?

Lecture de 2 minute(s)
0

Je souhaite vérifier si l’application de correctifs pour le système d’exploitation AWS Fargate a supprimé mes nœuds ou pods Amazon Elastic Kubernetes Service (Amazon EKS).

Brève description

Pour garantir la sécurité des nœuds, Amazon EKS applique régulièrement des correctifs au système d’exploitation concernant les nœuds Fargate. Pendant le processus d’application des correctifs, Amazon EKS recycle les nœuds pour installer les correctifs du système d’exploitation. Dans le cadre de l’application de correctifs au système d’exploitation Fargate, Amazon EKS utilise l’API d’éviction pour drainer le pod en toute sécurité et enregistre l’API dans les journaux d’audit Amazon EKS. Si des correctifs ont été appliqués au système d’exploitation Fargate, vérifiez que les journaux relatifs à l’API d’éviction apparaissent dans les journaux d’audit. Pour en savoir plus, consultez la page Eviction API du site Web Kubernetes.

Résolution

Pour vérifier que l’API d’éviction apparaît dans les journaux d’audit, utilisez l’exemple de requête suivant :

filter @logStream like /^kube-apiserver-audit/ | fields @timestamp, user.username, user.extra.canonicalArn.0, @message
 | sort @timestamp desc
 | filter verb == "create" and objectRef.subresource == 'eviction'
 | filter requestURI like "/api/v1/namespaces/NAMESPACE/pods/pod-name/"

Remarque : remplacez NAMESPACE et pod-name par vos valeurs. Pour affiner votre fenêtre de recherche, modifiez la plage horaire dans Amazon CloudWatch.
Exemple de sortie du journal d’audit :

{
        "@logStream": "kube-apiserver-audit",
        "@timestamp": "xxx",
        "@message": {
            "kind": "Event",
            "apiVersion": "audit.k8s.io/v1",
            "level": "RequestResponse",
・・・
            "stage": "ResponseComplete",
            "requestURI": "/api/v1/namespaces/<Namespace>/pods/<Pod_Name>/eviction.."
            "verb": "create",
            "user": {
                "username": "<username>",
・・・
            },
            "userAgent": "<agent>",
            "objectRef": {
                "resource": "pods",
                "namespace": "xxx",
                "name": "xxx",
                "apiVersion": "v1",
                "subresource": "eviction"
            },
            "responseStatus": {
                "metadata": {},
                "status": "Success",
                "code": 201
            },
            "requestObject": {
                "kind": "Eviction",
                "apiVersion": "policy/v1beta1",
                "metadata": {
                    "name": "xxx",
                    "namespace": "xxx",
                    "creationTimestamp": null
                }
            },

Remarque : pour limiter le nombre de pods arrêtés en même temps pendant le recyclage des pods, définissez des budgets d’interruption des pods. Pour en savoir plus, consultez la page Specifying a disruption budget for your application du site Web Kubernetes.

Informations connexes

Page API-initiated eviction du site Web Kubernetes

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 9 mois