Salta al contenuto

Come posso verificare se le patch del sistema operativo di AWS Fargate hanno eliminato i miei pod o nodi?

2 minuti di lettura
0

Desidero verificare se le patch del sistema operativo di AWS Fargate hanno eliminato i miei pod o nodi Amazon Elastic Kubernetes Service (Amazon EKS).

Breve descrizione

Per proteggere i nodi, Amazon EKS aggiorna periodicamente il sistema operativo per i nodi Fargate. Durante il processo di applicazione delle patch, Amazon EKS riavvia i nodi per installare le patch del sistema operativo. Nelle patch del sistema operativo di Fargate, Amazon EKS utilizza l'API eviction per svuotare in sicurezza il pod e registra l'API nei log di audit di Amazon EKS. Se sono state applicate patch del sistema operativo di Fargate, verifica che i log per l'API eviction compaiano nei log di audit. Per ulteriori informazioni, consulta Eviction API (API eviction) sul sito web Kubernetes.

Risoluzione

Per verificare che l'API eviction appaia nei log di audit, utilizza il seguente esempio di query:

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/"

Nota: sostituisci NAMESPACE e pod-name con i tuoi valori. Per restringere la finestra di ricerca, modifica la finestra temporale in Amazon CloudWatch.
Esempio di output del log di 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
                }
            },

Nota: per limitare il numero di pod inattivi contemporaneamente quando vengono riavviati, imposta budget per le interruzioni dei pod. Per ulteriori informazioni, consulta Specifying a disruption budget for your application (Come specificare un budget per le interruzioni di un'applicazione) sul sito web Kubernetes.

Informazioni correlate

API-initiated Eviction (Espulsione tramite API) sul sito web Kubernetes