Reparación automática de nodos en clústeres de EKS - Amazon EKS

Ayude a mejorar esta página

Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.

Reparación automática de nodos en clústeres de EKS

En este tema se detalla el comportamiento de la reparación automática de nodos de EKS y cómo configurarlo para que cumpla con sus requisitos. La reparación automática de nodos de EKS está habilitada de forma predeterminada en el modo automático de EKS y se puede utilizar con los grupos de nodos administrados por EKS y con Karpenter.

Las acciones predeterminadas de reparación automática de nodos de EKS se resumen en la siguiente tabla y se aplican al comportamiento del modo automático de EKS, los grupos de nodos administrados por EKS y Karpenter. Cuando se utiliza el modo automático de EKS o Karpenter, todas las acciones de reparación de AcceleratedHardwareReady son Replace, y solo los grupos de nodos administrados por EKS admiten Reboot como acción de reparación.

Para obtener una lista detallada de los problemas de estado de los nodos detectados por el agente de supervisión de nodos de EKS y sus correspondientes acciones de reparación de nodos, consulte Detecte problemas de estado de los nodos con el agente de supervisión de nodos EKS.

Condiciones de nodos Descripción Reparación posterior Acciones de reparación

AcceleratedHardwareReady

AcceleratedHardwareReady indica si el hardware acelerado (GPU, Neuron) del nodo funciona correctamente.

10 m

Reemplazar o reiniciar

ContainerRuntimeReady

ContainerRuntimeReady indica si el tiempo de ejecución del contenedor (containerd, etc.) funciona correctamente y puede ejecutar contenedores.

30 m

Reemplazar

DiskPressure

DiskPressure es una condición estándar de Kubernetes que indica que el nodo está bajo presión en el disco (poco espacio en disco o gran cantidad de E/S).

N/A

Ninguno

KernelReady

KernelReady indica si el kernel funciona correctamente sin errores críticos, problemas o agotamiento de los recursos.

30 m

Reemplazar

Presión de memoria

MemoryPressure es una condición estándar de Kubernetes que indica que el nodo está experimentando una presión de memoria (poca memoria disponible).

N/A

Ninguno

NetworkingReady

NetworkingReady indica si la pila de redes del nodo funciona correctamente (interfaces, enrutamiento, conectividad).

30 m

Reemplazar

StorageReady

StorageReady indica si el subsistema de almacenamiento del nodo funciona correctamente (discos, sistemas de archivos, E/S).

30 m

Reemplazar

Ready

Listo es la condición estándar de Kubernetes que indica que el nodo está en buen estado y listo para aceptar pods.

30 m

Reemplazar

Las acciones de reparación automática de nodos de EKS están deshabilitadas de forma predeterminada en los siguientes escenarios. Las acciones de reparación de nodos en curso continúan en cada escenario. Consulte Configuración de la reparación automática de nodos para saber cómo anular esta configuración predeterminada.

Grupos de nodos administrados por EKS

  • El grupo de nodos tiene más de cinco nodos y más del 20 % de los nodos del grupo de nodos están en mal estado.

  • Un cambio de zona para el clúster se desencadena a través del Controlador de recuperación de aplicaciones (ARC).

Modo automático de EKS y Karpenter

  • Más del 20 % de los nodos del NodePool están en mal estado.

  • En el caso de los NodeClaims independientes, el 20 % de los nodos del clúster están en mal estado.

Configuración de la reparación automática de nodos

La reparación automática de nodos no se puede configurar cuando se utiliza el modo automático de EKS y siempre está activado con los mismos ajustes predeterminados que Karpenter.

Karpenter

Para utilizar la reparación automática de nodos con Karpenter, active la puerta de características NodeRepair=true. Puede habilitar las puertas de características mediante la opción --feature-gates de la CLI o la variable de entorno FEATURE_GATES en la implementación de Karpenter. Para obtener más información, consulte la documentación de Karpenter.

Grupos de nodos administrados

Puede activar la reparación automática de nodos al crear nuevos grupos de nodos administrados por EKS o al actualizar los grupos de nodos administrados por EKS existentes.

Al utilizar grupos de nodos administrados por EKS, puede controlar el comportamiento de reparación automática de los nodos con los siguientes ajustes.

Para controlar cuándo la reparación automática de nodos deja de funcionar, establezca un umbral en función del número de nodos en mal estado del grupo de nodos. Establezca el porcentaje o el recuento absoluto, pero no ambos.

Opción Descripción

maxUnhealthyNodeThresholdCount

El número absoluto de nodos en mal estado por encima del cual se detiene la reparación automática de nodos. Úselo para limitar el alcance de las reparaciones.

maxUnhealthyNodeThresholdPercentage

El número absoluto de nodos en mal estado por encima del cual se detiene la reparación automática de nodos (0-100).

Para controlar el número de nodos que se reparan al mismo tiempo, puede configurar el paralelismo de reparación. Al igual que con el umbral de nodos en mal estado, establezca el porcentaje o el recuento absoluto, pero no ambos.

Opción Descripción

maxParallelNodesRepairedCount

El número máximo de nodos para la reparación simultánea.

maxParallelNodesRepairedPercentage

El porcentaje máximo de nodos en mal estado que se pueden reparar simultáneamente (0-100).

Con nodeRepairConfigOverrides, puede personalizar el comportamiento de reparación para condiciones específicas. Úselo cuando necesite diferentes acciones de reparación o tiempos de espera para diferentes tipos de problemas.

Cada anulación requiere los siguientes campos:

Campo Descripción

nodeMonitoringCondition

El tipo de condición del nodo notificada por el agente de supervisión de nodos. Por ejemplo: AcceleratedHardwareReady, NetworkingReady, StorageReady, KernelReady.

nodeUnhealthyReason

El código de motivo específico de la condición de mal estado. Por ejemplo: NvidiaXID31Error, IPAMDNotRunning.

minRepairWaitTimeMins

El tiempo mínimo (en minutos) que debe persistir la condición de reparación antes de que el nodo sea elegible para la reparación. Utilícelo para evitar reparar los nodos por problemas temporales.

repairAction

La acción que se debe realizar cuando se cumplen las condiciones. Valores válidos: Replace (terminar y reemplazar el nodo), Reboot (reiniciar el nodo) o NoAction (sin acciones de reparación).

El siguiente ejemplo de la AWS CLI crea un grupo de nodos con una configuración de reparación personalizada.

aws eks create-nodegroup \ --cluster-name my-cluster \ --nodegroup-name my-nodegroup \ --node-role arn:aws:iam::111122223333:role/NodeRole \ --subnets subnet-0123456789abcdef0 \ --node-repair-config '{ "enabled": true, "maxUnhealthyNodeThresholdPercentage": 10, "maxParallelNodesRepairedCount": 3, "nodeRepairConfigOverrides": [ { "nodeMonitoringCondition": "AcceleratedHardwareReady", "nodeUnhealthyReason": "NvidiaXID64Error", "minRepairWaitTimeMins": 5, "repairAction": "Replace" }, { "nodeMonitoringCondition": "AcceleratedHardwareReady", "nodeUnhealthyReason": "NvidiaXID31Error", "minRepairWaitTimeMins": 15, "repairAction": "NoAction" } ] }'

Esta configuración hace lo siguiente:

  • Permite la reparación automática de nodos

  • Detiene las acciones de reparación cuando más del 10 % de los nodos están en mal estado

  • Repara hasta 3 nodos a la vez

  • Anula los errores XID 64 (error de reasignación de la memoria de la GPU) para reemplazar el nodo después de 5 minutos. El valor predeterminado para el reinicio es tras 10 minutos.

  • Anula los errores XID 31 (error de página en la memoria de la GPU) para no realizar ninguna acción. El valor predeterminado para el reinicio es tras 10 minutos.