O ACK utiliza o componente ack-node-problem-detector (ACK NPD) para monitorar a integridade das GPUs. Quando um nó de GPU apresenta uma exceção, como um erro XID ou SXID, o ACK NPD detecta automaticamente a GPU com falha e atua em conjunto com o componente ACK NVIDIA Device Plugin para isolá-la. Esse processo mantém as GPUs íntegras disponíveis para atender às cargas de trabalho, minimizando o impacto nos negócios e melhorando a confiabilidade e a eficiência do cluster.
O ack-node-problem-detector (ACK NPD) é um componente de monitoramento de anomalias em nós do cluster, adaptado e aprimorado pelo ACK a partir do projeto open source node-problem-detector. Ele oferece um conjunto abrangente de verificações para anomalias específicas de GPU, para melhorar a detecção de falhas em cargas de trabalho de GPU. Quando o componente detecta uma anomalia, ele gera um Kubernetes Event and Node Condition com base no tipo de anomalia.
Notas de uso
-
Se uma placa de GPU com falha for isolada, o agendamento de tarefas poderá falhar caso as GPUs restantes no nó não atendam aos requisitos. Por exemplo, uma tarefa que exige oito placas de GPU não será execute se apenas sete estiverem disponíveis, deixando recursos de GPU ociosos. O isolamento automático de GPU não equivale ao reparo automático. O faturamento da instância do nó continua normalmente. Você ainda deve reparar o nó. Recomendamos que configure GPU exception alerts para garantir a correção em tempo hábil. O isolamento é removido automaticamente assim que o status da GPU retorna ao normal.
Você também pode enable or disable automatic GPU isolation de acordo com os requisitos do seu negócio. Versões específicas do componente NVIDIA Device Plugin suportam o isolamento automático de placas de GPU com falha, mas o procedimento para desative esse recurso varia. Para obter instruções detalhadas, consulte How to disable the native GPU isolation capability of the NVIDIA Device Plugin .
O driver da GPU grava os XIDs e SXIDs da NVIDIA no arquivo
/var/log/messagesou/var/log/syslogpor meio do mecanismo de eventos NVRM. O ACK NPD rastreia o processamento de cada XID e SXID. Se um nó for reiniciado após a detecção de um XID ou SXID, o ACK NPD considerará o problema resolvido e não gerará um Evento ou uma Condição de Nó correspondente. Isso ocorre mesmo que o problema subjacente não tenha sido corrigido. Por exemplo, resolver um erro XID 79 exige a substituição do dispositivo de GPU, mas o ACK NPD ainda marcará o erro como resolvido após a reinicialização do nó.O ACK NPD detecta o NVIDIA XID ou NVIDIA SXID ao verificar o arquivo
/var/log/messagesou/var/log/syslogno nó. Se o log do dmesg for redirecionado para outro arquivo, o ACK NPD não conseguirá detectar o NVIDIA XID e o SXID.A partir da versão 1.2.29 do ACK NPD, o plug-in de detecção de falhas de GPU do ACK NPD é implantado como um DaemonSet separado chamado ack-accel-health-monitor.
Em alguns casos, uma falha de GPU em um nó pode impedir a crie de novos contêineres de GPU. Isso pode fazer com que o próprio contêiner de detecção de falhas de GPU falhe ao iniciar, impedindo a execute correta do processo de detecção.
-
O Pod do plug-in de detecção de GPU do ACK NPD requer privilégios elevados, como
privileged=true, para detectar o status dos dispositivos e dos componentes de GPU. Para mais detalhes, consulte a tabela a seguir.Permissões RBAC do cluster
Permissões do contêiner
Node: get
Node/Status: update
Events: crie
privileged: trueMonta o
/dev/kmsgdo host como somente leitura.Monta o
/usr/libdo host como somente leituraMonta o diretório
/etcdo host como somente leitura.Monta o
/usr/lib64do host como somente leituraMonta o
/procdo host como somente leitura
Isolamento automático de GPU
A partir da versão 1.2.35 do componente ACK Node Problem Detector (ACK NPD) e da versão 0.7.0 do componente ACK NVIDIA Device Plugin, o mecanismo de isolamento automático de GPU passou de um gatilho padrão para um gatilho baseado em configuração. Para mais informações, consulte [[Product Change] Announcement on Changes to the Automatic GPU Isolation Feature](t3223577.xdita#).
-
Mecanismo legado (gatilho padrão)
Quando o componente ACK Node Problem Detector detecta uma falha de GPU, ele gera um arquivo de isolamento de GPU. Em seguida, o componente ACK NVIDIA Device Plugin isola todos os dispositivos de GPU listados nesse arquivo. Por padrão, o sistema isola automaticamente as GPUs após detectar falhas específicas. Ative ou desative esse recurso e configure a geração do arquivo de isolamento de GPU.
-
Novo mecanismo (gatilho baseado em configuração)
Quando o componente ACK Node Problem Detector detecta uma falha de GPU, ele gera um relatório de detecção de falhas. O componente ACK NVIDIA Device Plugin determina se deve isolar a GPU com base nesse relatório e nos itens de verificação do NPD configurados como gatilhos de isolamento. Por padrão, nenhum item de verificação de gatilho é configurado para o componente ACK NVIDIA Device Plugin. Portanto, o isolamento automático de GPU fica desativado por padrão. Configure esses itens de verificação para especifique quais falhas acionam o isolamento automático de GPU.
Para verifique a aplicabilidade de cada mecanismo, consulte GPU automatic isolation behavior.
Para manter a compatibilidade com versões anteriores, a nova versão do componente ACK NPD continuará gerando o arquivo de isolamento de GPU no formato legado. No entanto, a nova versão do componente ACK NVIDIA Device Plugin não lê mais esse arquivo. O comportamento de isolamento agora depende exclusivamente da configuração do próprio componente.
Comportamento do isolamento automático de GPU
O novo mecanismo se aplica apenas a clusters ACK com Kubernetes 1.32 ou posterior.
Para clusters com versões do Kubernetes anteriores à 1.32, o isolamento automático de GPU ainda utiliza o mecanismo anterior.
A tabela a seguir resume o comportamento do isolamento automático de GPU para diferentes versões dos componentes:
|
Versão do ACK NPD |
Versão do ACK NVIDIA Device Plugin |
Comportamento do isolamento automático de GPU |
Ações |
|
Versão do ACK NPD < 1.2.24 |
N/D |
Não há suporte para detecção de anomalias de GPU. |
N/D |
|
Versão do ACK NPD ≥ 1.2.24 |
Versão do ACK NVIDIA Device Plugin < 0.7.0 |
O isolamento segue o legacy mechanism. |
Siga o legacy procedure. |
|
1.2.24 ≤ Versão do ACK NPD < 1.2.35 |
Versão do ACK NVIDIA Device Plugin ≥ 0.7.0 |
O isolamento automático de GPU não entra em vigor , mas outros recursos funcionam conforme o esperado. Versões anteriores do ACK NPD não geram relatórios de detecção de anomalias. Consequentemente, o novo ACK NVIDIA Device Plugin não consegue identificar GPUs com falha e não realiza o isolamento automático. |
N/D Atualize o ACK NPD para a versão mais recente para usar o novo mecanismo. |
|
Versão do ACK NPD ≥ 1.2.35 Esta versão está em liberação canário. Envie um ticket para obter acesso à lista de permissões. |
Versão do ACK NVIDIA Device Plugin ≥ 0.7.0 Esta versão está em liberação canário. Envie um ticket para obter acesso à lista de permissões. |
O isolamento segue o new mechanism. |
Siga o new procedure. |
Para obter instruções sobre como verifique e atualize os componentes ACK NPD e ACK NVIDIA Device Plugin, consulte Check or upgrade the ACK NPD version e Check or upgrade the NVIDIA Device Plugin version .
Ative ou desative o isolamento automático de GPU
Se você desativar o isolamento automático de GPU ou se o recurso não estiver funcionando, apenas o isolamento automático das GPUs será afetado. Quando o ACK NPD detecta uma exceção de GPU, ele ainda aciona Condições de Nó, Eventos do Kubernetes e alertas com base nos ACK NPD check items, mas não isola automaticamente a GPU com falha.
Novo método
Quando ativado, uma GPU com falha é isolada automaticamente se acionar um ACK NPD check item configurado. O isolamento automático não equivale ao reparo automático. A instância do nó com a GPU isolada continua sendo faturada. Você ainda precisa reparar o nó. Recomendamos que configure GPU exception alarms para um tratamento ágil. Se nenhum item de verificação for selecionado, o isolamento automático não será acionado.
Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique em seu cluster. No painel de navegação à esquerda, clique em Add-ons .
Na página de gerenciamento de componentes, pesquise o componente ack-nvidia-device-plugin e clique em Configuration no cartão dele.
-
Na caixa de diálogo exibida, ative ou desative o isolamento automático de GPU.
Ative: Selecione a caixa de seleção Enable GPU Automatic Isolation e, em seguida, selecione os NPD check items to trigger GPU automatic isolation.
Desative: Desmarque a caixa de seleção Enable GPU Automatic Isolation ou não selecione nenhum item de verificação.
Método legado
Ao detectar uma exceção de GPU, o componente ack-node-problem-detector gera um arquivo de isolamento de GPU NVIDIA com base na política de isolamento padrão. Em seguida, o componente ack-nvidia-device-plugin isola automaticamente a GPU com falha com base no conteúdo do arquivo. Isso impede o agendamento de novas cargas de trabalho para a GPU com falha, enquanto outras GPUs íntegras no nó permanecem disponíveis para atender às cargas de trabalho. No entanto, o isolamento automático não realiza o reparo automático. A instância do nó com a GPU isolada continua sendo faturada. Você ainda precisa reiniciar ou reparar o nó manualmente. Recomendamos que configure GPU exception alarms para um tratamento ágil.
Para o ack-node-problem-detector v1.2.30 ou posterior, use a configuração
generateNvidiaGpuIsolationFileno gerenciamento de componentes para controlar o isolamento automático de GPUs com falha.Após atualize o componente, consulte GPU automatic isolation behavior para determinar como ative ou desative o isolamento automático de GPU para a nova versão do componente.
Ative: No mecanismo legado, o isolamento automático de GPU é ativado por padrão. Reative-o e defina
generateNvidiaGpuIsolationFile(para v1.2.30 ou posterior) ouEnabledIsolateGPU(para v1.2.24 a v1.2.29) comotrue.-
Desative:
Na página Clusters, clique em seu cluster. No painel de navegação à esquerda, clique em Components and Add-ons .
-
Na aba Logs and Monitoring, localize o componente ack-node-problem-detector e siga as etapas para a versão do seu componente:
v1.2.24 a v1.2.29: Upgrade para a versão mais recente.
v1.2.30 e posterior: Clique em Configuration.
-
Na página de atualização ou configuração do componente, defina o parâmetro
generateNvidiaGpuIsolationFilecomofalsee clique em OK.NotaSe você desativou anteriormente o isolamento automático de GPU nas versões 1.2.24 a 1.2.29 modificando o
ack-node-problem-detector-daemonsete definindo o parâmetroEnabledIsolateGPUcomofalse, essa configuração é retida automaticamente quando você atualize o componente ACK NPD. Se desejar reativar o isolamento automático de GPU, definagenerateNvidiaGpuIsolationFilecomotrue.
Para desfazer um isolamento de GPU existente, faça login no nó onde o erro XID ocorreu e exclua o arquivo
/etc/nvidia-device-plugin/unhealthyDevices.json. Para evitar que a GPU seja isolada novamente, desative o recurso conforme descrito anteriormente.
Detecções e correção
Ao detectar uma exceção de GPU, consulte Nvidia Xid Errors para obter soluções. Verifique também o console do product cloud correspondente (como ECS ou Lingjun) para eventos de O&M relacionados ou use uma ferramenta de autodiagnóstico para solucionar exceções de hardware.
Na tabela a seguir, Auto-isolate Faulty GPU é o comportamento de isolamento padrão do mecanismo legado. No novo mecanismo, as GPUs são isoladas com base na sua configuração personalizada. Para mais detalhes, consulte automatic GPU isolation mechanism.
Outros eventos relacionados
Em cenários de dedicated GPU, o mecanismo legado isola automaticamente as GPUs com falha, enquanto o novo mecanismo exige a configuração de gatilhos no gerenciamento de componentes. Após o isolamento, novos Pods de aplicativos de GPU não são agendados na placa de GPU. Para verifique o isolamento, verifique a quantidade de recursos nvidia.com/gpu relatados pelo nó do Kubernetes. Após a recuperação da placa de GPU, o ACK a libera automaticamente do isolamento.
|
Motivo do gatilho |
Conteúdo do evento |
Descrição |
|
Isolamento de GPU |
Sim
|
O sistema isola a placa de GPU após detectar um problema. |
|
Liberação do isolamento da GPU |
Sim
|
A placa de GPU se recupera e o ACK a libera do isolamento. |