Saltar al contenido

¿Cómo compruebo si los parches del sistema operativo de AWS Fargate han eliminado mis pods o nodos?

2 minutos de lectura
0

Quiero comprobar si los parches del sistema operativo (SO) de AWS Fargate han eliminado mis pods o nodos de Amazon Elastic Kubernetes Service (Amazon EKS).

Descripción breve

Para mantener la seguridad de los nodos, Amazon EKS aplica parches periódicos al sistema operativo para los nodos de Fargate. Durante el proceso de aplicación de parches, Amazon EKS recicla los nodos para instalar los parches del sistema operativo. Al aplicar parches al sistema operativo de Fargate, Amazon EKS usa la API de expulsión para vaciar el pod de forma segura y registra la API en los registros de auditoría de Amazon EKS. Si se han aplicado parches al sistema operativo de Fargate, confirma que los registros de la API de expulsión aparezcan en los registros de auditoría. Para obtener más información, consulta la API de expulsión en el sitio web de Kubernetes.

Resolución

Para comprobar que la API de expulsión aparezca en los registros de auditoría, utiliza el siguiente ejemplo de consulta:

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: Sustituye NAMESPACE y pod-name por tus valores. Para reducir la ventana de búsqueda, modifica la ventana de tiempo en Amazon CloudWatch.
Ejemplo de salida del registro de auditoría:

{
        "@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: Para limitar la cantidad de pods que están inactivos al mismo tiempo que se reciclan, establece presupuestos para la interrupción de los pods. Para obtener más información, consulta Specifying a disruption budget for your application (Especificación de un presupuesto de interrupción para la aplicación) en el sitio web de Kubernetes.

Información relacionada

API-initiated eviction (Expulsión iniciada desde la API) en el sitio web de Kubernetes

OFICIAL DE AWSActualizada hace 2 años