Todos los productos
Search
Centro de documentos

Container Compute Service:Supervisión y recuperación de fallas en nodos GPU-HPN

Última actualización: Sep 06, 2026

Durante el entrenamiento de IA, una falla en un nodo GPU puede provocar que las tareas se bloqueen o finalicen de manera anómala. Alibaba Cloud Container Service for Kubernetes (ACS) supervisa los nodos GPU-HPN. Cuando un nodo falla, lo marca con un taint y notifica la falla mediante condiciones de Kubernetes y eventos de pods. Este tema describe los tipos de falla, cómo leer las señales de falla y el proceso de recuperación del nodo.

Proceso de gestión de fallas en nodos

ACS ejecuta comprobaciones de estado en los nodos GPU-HPN continuamente. Si un nodo falla, siga este proceso para repararlo mediante el mecanismo de autorrecuperación de ACS.

image

  1. Notificación de falla ACS notifica la causa de la falla mediante eventos y condiciones del nodo. Además, agrega un taint para evitar que se programen nuevos pods en el nodo.

  2. Drenar el nodo con errores Después de recibir la notificación de falla, expulse todos los pods del nodo con errores. Use acs-instance-helper para automatizar la expulsión de pods. Para obtener más información, consulte Configure automatic rotation for instances with hardware exceptions.

  3. Reparar el nodo con errores Una vez expulsados todos los pods, ACS inicia automáticamente el proceso de reparación.

  4. Autorrecuperación del nodo Una vez que ACS repara el nodo, los taints y las condiciones relacionados se restauran automáticamente a su estado normal. A partir de ese momento, se pueden programar nuevos pods en el nodo.

Tipos de falla

La tabla a continuación describe los tipos de falla notificados en las condiciones del nodo y los eventos de pods.

Tipo de falla

Descripción

NodeBroken

Todo el nodo GPU-HPN está con errores.

GPUCardBroken

Se produjo una falla en una tarjeta GPU.

NodeMaintenance

El nodo GPU-HPN está en proceso de actualización del sistema o de operación y mantenimiento.

Notificaciones de fallas

Importante

Asegúrese de atender oportunamente las fallas: configure condiciones de alerta mediante kube-eventer. Para obtener más información, consulte kube-eventer.

Cuando un nodo GPU-HPN presenta una falla, ACS proporciona información de la falla mediante condiciones del objeto Node y eventos de los pods afectados.

Condiciones del nodo

ACS usa dos tipos de condición en el objeto Node: NodeAnomaly y FaultHealing.

Condición NodeAnomaly

Cuando se detecta una falla, ACS:

  • Agrega una etiqueta al nodo para facilitar el filtrado:

    metadata:
      labels:
        alibabacloud.com/node-anomaly: "true"
  • Agrega un NoSchedule taint para evitar que se programen nuevos pods en el nodo:

    spec:
      taints:
      - effect: NoSchedule
        key: alibabacloud.com/node-anomaly
        timeAdded: "2024-10-16T06:09:27Z"
  • Registra información detallada de la falla en la condición NodeAnomaly:

    status:
      conditions:
      - lastHeartbeatTime: "2024-10-16T06:09:31Z"
        lastTransitionTime: "2024-10-16T06:09:31Z"
        message: The node has encountered an anomaly.
        reason: NodeBroken
        status: "True"
        type: NodeAnomaly

Para consultar la condición NodeAnomaly en todos los nodos:

kubectl get nodes -o custom-columns='NAME:.metadata.name,ANOMALY:.status.conditions[?(@.type=="NodeAnomaly")].status,REASON:.status.conditions[?(@.type=="NodeAnomaly")].reason'

Para enumerar todos los nodos con la etiqueta de anomalía:

kubectl get nodes -l alibabacloud.com/node-anomaly=true

En la tabla a continuación se describen los campos de la condición NodeAnomaly.

Campo

Descripción

Cuándo se actualiza

type

NodeAnomaly. Indica una anomalía en el nodo.

Campo estático. No cambia durante el ciclo de vida del nodo.

status

Indica si existe una falla. True: existe una falla. False: no existe ninguna falla.

Se actualiza cuando cambia el estado de falla del nodo.

reason

Tipo de falla. Consulte Tipos de falla para ver los valores posibles.

Al cambiar el estado de falla del nodo.

message

Información detallada de la falla.

Cuando se modifica el estado de falla del nodo.

lastTransitionTime

Hora del último cambio del estado de falla.

Cada vez que cambia el estado de falla del nodo.

lastHeartbeatTime

Hora de latido, que se actualiza periódicamente.

Cuando cambia el estado de falla o si transcurrieron más de cinco minutos desde la última actualización.

Condición FaultHealing

ACS registra el progreso de autorrecuperación en la condición FaultHealing. Esta condición se actualiza conforme avanza el proceso de reparación.

status:
  conditions:
  - lastHeartbeatTime: "2025-03-24T11:14:48Z"
    lastTransitionTime: "2025-03-24T11:14:48Z"
    message: node fault healing success
    reason: Success
    status: "False"
    type: FaultHealing

Supervise el progreso de autorrecuperación:

kubectl get nodes -o custom-columns='NAME:.metadata.name,HEALING:.status.conditions[?(@.type=="FaultHealing")].status,REASON:.status.conditions[?(@.type=="FaultHealing")].reason,MESSAGE:.status.conditions[?(@.type=="FaultHealing")].message'

Los campos de la condición FaultHealing se describen en la tabla a continuación.

Campo

Descripción

type

FaultHealing. Indica que el nodo está en proceso de autorrecuperación.

status

Indica si la autorrecuperación está en curso. True: la autorrecuperación está en curso. False: la autorrecuperación está completa.

reason

Estado de la autorrecuperación. Success o Finished: completa. InProgress: en curso. Failed: la autorrecuperación está con errores.

message

Información detallada sobre el progreso de autorrecuperación.

lastTransitionTime

Se actualiza cuando cambia el progreso de autorrecuperación.

lastHeartbeatTime

Al cambiar el progreso de autorrecuperación.

Eventos de pods

Importante

Después de recibir la notificación de falla, expulse los pods del nodo con errores lo antes posible. ACS inicia automáticamente el proceso de reparación una vez expulsados todos los pods. Use acs-instance-helper para automatizar la expulsión de pods. Para más detalles, consulte Configure automatic rotation for instances with hardware exceptions.

ACS genera un evento Warning para cada pod que se ejecuta en el nodo con errores.

reason: NodeBroken
type: Warning
message: 'The pod is proposed to be evicted at 2024-10-16 07:21:54 +0000 UTC, reason: xxx'

Consulte los eventos relacionados con fallas en un nodo específico:

kubectl get events --field-selector involvedObject.name=<node-name> | grep -i "NodeBroken\|GPUCardBroken\|NodeMaintenance"

La tabla a continuación describe los campos de los eventos de pods.

Campo

Descripción

type

Campo estático. El valor es Warning.

reason

Tipo de falla. Consulte Tipos de falla para ver los valores posibles.

message

Información detallada sobre la expulsión propuesta.