Todos os produtos
Search
Central de documentação

Container Compute Service:Monitorar e recuperar falhas em nós GPU-HPN

Última atualização: Jun 29, 2026

Durante o treinamento de IA, falhas em nós GPU podem causar o travamento ou a terminação anormal de tarefas. O Alibaba Cloud Container Service for Kubernetes (ACS) monitora os nós GPU-HPN e, ao detectar uma falha, aplica um taint ao nó e relata o problema por meio de conditions do Kubernetes e eventos de pod. Este tópico descreve os tipos de falha, como interpretar os sinais de erro e o processo de recuperação do nó.

Processo de tratamento de falhas de nó

O ACS executa verificações de integridade contínuas nos nós GPU-HPN. Se um nó apresentar falha, siga este processo para repará-lo com o mecanismo de autocura do ACS.

image

  1. Notificação de falha: O ACS relata a causa da falha por meio de eventos e conditions do nó e adiciona um taint para impedir o agendamento de novos pods nesse nó.

  2. Drenagem do nó com falha: Após receber a notificação de falha, evite todos os pods do nó afetado. Use o acs-instance-helper para automatizar a evicção dos pods. Para mais informações, consulte Configure rotação automática para instâncias com exceções de hardware.

  3. Reparo do nó com falha: Após a evicção de todos os pods, o ACS inicia automaticamente o processo de reparo.

  4. Autorrecuperação do nó: Após o reparo do nó pelo ACS, os taints e as conditions associados retornam automaticamente ao estado normal, permitindo o agendamento de novos pods no nó.

Tipos de falha

A tabela a seguir descreve os tipos de falha relatados nas conditions do nó e nos eventos de pod.

Tipo de falha

Descrição

NodeBroken

Falha total do nó GPU-HPN.

GPUCardBroken

Ocorreu uma falha no nível da placa GPU.

NodeMaintenance

O nó GPU-HPN está passando por uma atualização de sistema ou operação e manutenção (O&M).

Notificações de falha

Importante

Para garantir o tratamento rápido das falhas, configure condições de alerta usando o kube-eventer. Para mais informações, consulte kube-eventer.

Quando um nó GPU-HPN apresenta falha, o ACS fornece informações sobre o problema por meio de conditions no objeto Node e eventos nos pods afetados.

Conditions do nó

O ACS utiliza dois tipos de condition no objeto Node: NodeAnomaly e FaultHealing.

Condition NodeAnomaly

Ao detectar uma falha, o ACS:

  • Adiciona um rótulo ao nó para filtragem:

    metadata:
      labels:
        alibabacloud.com/node-anomaly: "true"
  • Aplica um taint NoSchedule para evitar o agendamento de novos pods no nó:

    spec:
      taints:
      - effect: NoSchedule
        key: alibabacloud.com/node-anomaly
        timeAdded: "2024-10-16T06:09:27Z"
  • Registra informações detalhadas sobre a falha na condition 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 a condition NodeAnomaly de todos os nós:

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

Para listar todos os nós com o rótulo de anomalia:

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

A tabela abaixo detalha os campos da condition NodeAnomaly.

Campo

Descrição

Momento da atualização

type

NodeAnomaly. Indica uma anomalia no nó.

Campo estático. Não muda durante o ciclo de vida do nó.

status

Indica se há falha. True: falha presente. False: sem falha.

Atualizado quando o status de falha do nó muda.

reason

Tipo da falha. Consulte Tipos de falha para visualizar os valores possíveis.

Atualizado quando o status de falha do nó muda.

message

Informações detalhadas sobre a falha.

Atualizado quando o status de falha do nó muda.

lastTransitionTime

Horário da última alteração do status de falha.

Atualizado quando o status de falha do nó muda.

lastHeartbeatTime

Horário do heartbeat atualizado periodicamente.

Atualizado quando o status de falha muda ou se mais de cinco minutos se passaram desde a última atualização.

Condition FaultHealing

O ACS registra o progresso da autocura na condition FaultHealing. Essa condition é atualizada conforme o processo de reparo avança.

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

Para monitorar o progresso da autocura:

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'

A tabela a seguir explica os campos da condition FaultHealing.

Campo

Descrição

type

FaultHealing. Indica que o nó está em processo de autocura.

status

Indica se a autocura está em andamento. True: autocura em progresso. False: autocura concluída.

reason

Status da autocura. Success ou Finished: concluída. InProgress: em andamento. Failed: falha na autocura.

message

Informações detalhadas sobre o progresso da autocura.

lastTransitionTime

Atualizado quando o progresso da autocura muda.

lastHeartbeatTime

Atualizado quando o progresso da autocura muda.

Eventos de pod

Importante

Após receber a notificação de falha, evacue os pods do nó defeituoso o mais rápido possível. O ACS inicia automaticamente o processo de reparo depois que todos os pods são evacuados. Use o acs-instance-helper para automatizar essa evicção. Para mais informações, consulte Configure rotação automática para instâncias com exceções de hardware.

O ACS gera um evento Warning para cada pod em execução no nó com falha.

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

Para visualizar eventos relacionados a falhas em um nó específico:

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

A tabela abaixo descreve os campos dos eventos de pod.

Campo

Descrição

type

Campo estático. O valor é Warning.

reason

Tipo da falha. Consulte Tipos de falha para visualizar os valores possíveis.

message

Informações detalhadas sobre a evicção sugerida.