Para resolver falhas de GPU em clusters do Container Service for Kubernetes (ACK), o ACK oferece mecanismos de monitoramento, diagnóstico, alerta e recuperação sob diversas perspectivas. Este tópico descreve como solucionar e corrigir falhas de GPU.
Informações básicas
Configure o monitoramento e os alertas de rotina: defina regras de alerta com base em métricas de GPU (ACK GPU Monitoring 2.0) e eventos (ACK Node Problem Detector) conforme as necessidades do seu negócio. Quando ocorre uma falha na GPU, o sistema aciona um alerta imediatamente, melhorando a capacidade de resposta a essas falhas.
Diagnóstico e análise assistidos pelo Container Intelligence Service (CIS): quando ocorre uma falha na GPU, os alertas ou eventos relevantes podem fornecer informações limitadas sobre o status da GPU e os detalhes da falha. Nesse caso, use o CIS para diagnosticar o nó ao qual a GPU defeituosa pertence ou o pod que utiliza essa GPU. O CIS gera um relatório de diagnóstico com informações detalhadas sobre a falha, ajudando você a identificar o tipo de problema e a escolher as soluções adequadas para corrigi-lo.
Isolamento e recuperação de falhas: para mitigar o impacto de falhas específicas, o ACK permite ativar o isolamento de nós e o isolamento de GPU. Após a correção da falha, cancele o isolamento para retomar a execução normal das aplicações.
Etapa 1: Configure monitoramento e alertas de rotina
O Node Problem Detector (NPD) suporta inspeções regulares de GPU e ajuda a detectar falhas. Especifique contatos para receber alertas quando o NPD detectar problemas na GPU.
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique em no nome do seu cluster. No painel de navegação à esquerda, clique em Components and Add-ons.
-
Na página Add-ons, pesquise por ack-node-problem-detector e clique em Install assim que o componente aparecer.
NotaSe você já instalou o componente anteriormente, verifique se a versão é 1.2.20 ou posterior. Para mais informações, consulte ack-node-problem-detector.
Na página Clusters, clique em no nome do seu cluster. No painel de navegação à esquerda, clique em .
Na página Alerts, clique em na aba Alert Contacts. Em seguida, clique em Create e configure um contato seguindo as instruções na tela.
Na aba Alert Rules, selecione Alert Rule Set for GPU Monitoring e clique em Status. Depois, clique em Modify Contacts e selecione o contato criado.
Etapa 2: Usar o CIS para diagnóstico e análise
Quando ocorrem falhas nas GPUs de um cluster, o administrador recebe notificações por mensagens de texto, e-mail ou DingTalk. Faça login no ACK console e utilize o CIS para localizar e analisar as falhas.
Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique em no nome do seu cluster. No painel de navegação à esquerda, clique em .
Na página Diagnosis, clique em Node diagnosis. No canto superior esquerdo da página Node diagnosis, clique em Diagnosis.
No painel Select node, especifique o parâmetro Node name, leia e marque I know and agree e, em seguida, clique em Create diagnosis.
-
Após a conclusão do diagnóstico, os resultados de todos os itens são exibidos. Para mais informações sobre os itens suportados pelo recurso de diagnóstico de nós, consulte Node diagnostics.
Se ocorrer um
Xid errorna GPU, será exibido{"GPU-326dc0ce-XXXX-77b6-XXXX-9a2eeXXXX":["43"]}no itemGPUXIDErrors, indicando que houve um erro Xid 43 na GPUGPU-xxx. Para mais detalhes sobre erros de GPU nos relatórios de diagnóstico fornecidos pelo CIS, consulte Eventos de falhas de GPU detectados pelo NPD.
Etapa 3: Isolar a GPU defeituosa
Isolar manualmente a GPU defeituosa
Ao detectar uma falha na GPU, isole-a para impedir que outros pods sejam agendados nela. Para mais informações, consulte Configure and manage the NVIDIA device plugin. Se o index da GPU defeituosa for 1 ou o UUID for GPU-xxx-xxx-xxx, crie ou modifique um arquivo chamado unhealthyDevices.json no diretório /etc/nvidia-device-plugin/ do nó ao qual a GPU pertence. Adicione o índice ou UUID ao arquivo. Exemplo:
// Specify the index of the GPU.
{
"index": ["1"]
}
// Specify the UUID of the GPU.
{
"uuid": ["GPU-xxx-xxx-xxx"]
}
Salve a alteração e saia. Após corrigir a falha, remova o item correspondente à GPU do arquivo para cancelar o isolamento.
Isolar automaticamente a GPU defeituosa
-
Faça login no nó ao qual a GPU defeituosa pertence para modificar o arquivo
/etc/kubernetes//manifests/nvidia-device-plugin.yml, excluindo a seguinte variável de ambiente:NotaSe a variável de ambiente não existir, o isolamento automático de GPU já está ativado.
env: - name: DP_DISABLE_HEALTHCHECKS value: all -
Após excluir a variável de ambiente, execute o comando abaixo para reiniciar o Device Plugin:
mv /etc/kubernetes/manifests/nvidia-device-plugin.yml /etc/kubernetes/ # Wait a few seconds for the system to delete the original pod. mv /etc/kubernetes/nvidia-device-plugin.yml /etc/kubernetes/manifests/
Eventos de falhas de GPU detectados pelo NPD
|
Causa do evento |
Conteúdo do evento |
Descrição |
Mitigação |
|
|
|
Uma GPU desconectou-se do barramento no nó. |
Reinicie o nó. Se o problema persistir, abra um ticket para entrar em contato com a equipe de suporte técnico. |
|
|
|
Ocorreu um erro Xid em uma GPU no nó e uma mensagem Xid foi reportada. |
Reinicie o nó. Caso o problema persista, abra um ticket para contatar o suporte técnico. |
|
|
|
Execute o comando |
Reinicie o nó. Se o problema persistir, abra um ticket para falar com a equipe de suporte técnico. |
|
|
|
Verifique se ocorreu um |
Reinicie o nó. Se o problema persistir, abra um ticket para solicitar assistência técnica. |
|
|
|
Verifique a temperatura da GPU. Se ultrapassar 89 graus Celsius, a GPU será reportada. |
Este evento é apenas um aviso. |