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.
-
Consola Amazon EKS: seleccione la casilla de verificación Habilitar la reparación automática de nodos para el grupo de nodos administrado. Para obtener más información, consulte Creación de un grupo de nodos administrados para un clúster.
-
AWS CLI: agregue
--node-repair-config enabled=trueal comandoeks create-nodegroupoeks update-nodegroup-config. -
eksctl: configure
managedNodeGroups.nodeRepairConfig.enabled: truey consulte el ejemplo en el GitHub de eksctl.
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 |
|---|---|
|
|
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. |
|
|
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 |
|---|---|
|
|
El número máximo de nodos para la reparación simultánea. |
|
|
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 |
|---|---|
|
|
El tipo de condición del nodo notificada por el agente de supervisión de nodos. Por ejemplo: |
|
|
El código de motivo específico de la condición de mal estado. Por ejemplo: |
|
|
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. |
|
|
La acción que se debe realizar cuando se cumplen las condiciones. Valores válidos: |
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.