ACK monitorea y repara automáticamente los nodos con errores en los node pools administrados, lo que reduce las tareas manuales de operación y mantenimiento. Sin embargo, la reparación automática no resuelve todos los escenarios de fallo. Algunas fallas complejas aún requieren intervención manual.
Para los node pools de LINGJUN, consulte Enable node auto repair .
Funcionamiento
El proceso de reparación automática abarca lo siguiente:
Execution flow: flujo integral desde la detección del fallo hasta la finalización de la reparación.
Node conditions that trigger auto repair: tipos de fallos, niveles de riesgo, umbrales y acciones de reparación.
Node status during auto repair: transiciones de estado durante y después de la reparación.
Flujo de ejecución
A continuación se describe el flujo de trabajo, desde la detección del fallo y la notificación hasta la reparación automática:
|
El complemento ack-node-problem-detector (NPD) comprueba si existen excepciones en los nodos. Si un nodo permanece con errores durante un periodo determinado, ACK lo identifica como defectuoso. |
|
ACK genera una Node Condition y un evento de Kubernetes. Configure alertas en el Event Center para recibir notificaciones. |
|
Cuando se detecta una excepción de GPU, ACK aísla la tarjeta GPU defectuosa. Consulte GPU exception detection and automatic isolation. |
|
ACK determina si inicia una tarea de reparación según la Cuando una excepción del sistema o de un componente de Kubernetes persiste más allá del umbral configurado, ACK ejecuta una tarea de reparación:
|
En clústeres con varios node pools, la reparación automática se ejecuta en un node pool a la vez.
Condiciones de nodo que activan la reparación automática
|
Node Condition |
Descripción |
Nivel de riesgo |
Umbral |
Acción de reparación |
|
KubeletNotReady(KubeletHung) |
kubelet no responde, lo que provoca que el nodo pase al estado NotReady. |
Alto |
180 s |
|
|
KubeletNotReady(PLEG) |
La comprobación de estado del Pod Lifecycle Event Generator (PLEG) falló, lo que hace que el nodo reporte el estado NotReady. |
Medio |
180 s |
|
|
KubeletNotReady(SandboxError) |
No se encuentra el PodSandbox, lo que impide que kubelet inicie correctamente. |
Alto |
180 s |
|
|
RuntimeOffline |
El entorno de ejecución de contenedores (containerd o Docker) se detuvo, lo que deja al nodo no disponible. |
Alto |
90 s |
|
|
NTPProblem |
El servicio de sincronización de hora (ntpd o chronyd) no funciona correctamente. |
Alto |
10 s |
Reiniciar ntpd o chronyd. |
|
SystemdOffline |
Un estado anómalo de systemd impide iniciar o destruir contenedores. |
Alto |
90 s |
Si la opción Enable self-healing for system and node components only (node reboots allowed) está habilitada, reiniciar la instancia ECS. |
|
ReadonlyFilesystem |
El sistema de archivos del nodo pasó a modo de solo lectura. |
Alto |
90 s |
Si la opción Enable self-healing for system and node components only (node reboots allowed) está habilitada, reiniciar la instancia ECS. |
Estado del nodo durante la reparación automática
Durante la reparación, el estado del nodo es Repairing.
Si el fallo se resuelve tras la reparación, el nodo vuelve a su estado normal.
-
Si el fallo persiste después de la reparación, el estado del nodo cambia a Recovery failed.
Un nodo con estado Recovery failed no activa otra reparación automática hasta que se resuelva el fallo.
Notas de uso
Esta función requiere el Event Center para las alertas y ack-node-problem-detector (NPD) para detectar excepciones. Consulte Event monitoring.
Solo está disponible en clústeres administrados de ACK para node pools administrados.
-
A continuación se listan las funciones que se implementan de forma gradual. Para solicitar acceso, envíe un ticket.
Reparación automática de excepciones en instancias de nodo: sujeta a una lista de permitidos.
-
Conjuntos de reglas de alerta: después de habilitar la reparación automática de nodos, habilite la gestión de alertas y active los conjuntos Cluster Node Auto Repair Alert Rule Set y GPU monitoring and alert rules para recibir alertas de excepciones. Estos conjuntos de reglas se liberan de forma gradual.
Consulte Container Service Alert Management .
Versión de NPD: la reparación automática de excepciones en instancias de nodo requiere ack-node-problem-detector (NPD) 1.2.26 o posterior, versión que actualmente se libera de forma gradual.
Habilitar la reparación automática de nodos
Habilite la reparación automática de nodos al crear un node pool o en uno administrado existente.
Nuevo node pool
En la página ACK Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en .
-
Haga clic en Create Node Pool. En la sección Configure Managed Node Pool, seleccione Managed Node Pool, habilite la reparación automática de nodos, configure la directiva de reinicio de nodos para la reparación de componentes y cree el node pool.
Para obtener detalles sobre la configuración, consulte Create and manage a node pool. Para conocer las consideraciones sobre el reinicio de nodos, consulte la sección siguiente.
Node pool existente
En la página ACK Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en .
-
En la lista de node pools, busque el node pool de destino. En la columna Actions, haga clic en el icono
y seleccione Enable Managed Node Pool (si es un node pool estándar) o Configure Managed Node Pool (si es un node pool administrado). Establezca el modo de Configure Managed Node Pool en Managed Node Pool y habilite la reparación automática de nodos.Para obtener detalles sobre la configuración, consulte Create and manage a node pool. Para conocer las consideraciones sobre el reinicio de nodos, consulte la sección siguiente.
Eventos de reparación automática
ACK registra los eventos de reparación automática en el Event Center. En la página de detalles del clúster, elija . En la pestaña Node Events, consulte los registros de reparación automática. Suscríbase a estos eventos mediante Event monitoring.
|
Evento |
Nivel |
Descripción |
|
NodeRepairStart |
Normal |
Se inició la reparación automática del nodo. |
|
NodeRepairAction |
Normal |
Se ejecutó una acción de reparación, como reiniciar kubelet. |
|
NodeRepairSucceed |
Normal |
La reparación automática del nodo se completó correctamente. |
|
NodeRepairFailed |
Warning |
La reparación falló. Consulte FAQ. |
|
NodeRepairIgnore |
Normal |
Se omitió porque la instancia ECS no estaba en ejecución. |
Preguntas frecuentes
Fallo de la reparación automática
La reparación automática no resuelve todos los fallos. Si la reparación falla o el problema persiste, ACK establece el estado del nodo en Recovery failed.
Cuando la reparación automática de un nodo falla, las reparaciones posteriores de ese node pool se pausan hasta que se resuelva el problema. Puede enviar un ticket para obtener asistencia.
Referencias
Habilite NPD y monitoree los eventos del clúster mediante Event monitoring.
Consulte GPU exception detection and automatic isolation y Diagnose GPU node issues.
Para quitar y volver a agregar un nodo defectuoso, siga los procedimientos estándar de la consola de ACK y evite comportamientos inesperados. Consulte Remove a node y Add existing nodes.