Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Executar cargas de trabalho da GPU NVIDIA no Azure Kubernetes Service (AKS) normalmente exige que instale e mantenha o driver da GPU NVIDIA, o plugin do dispositivo Kubernetes e um exportador de métricas GPU em cada nó da GPU. Estes componentes permitem o agendamento da GPU, acesso a GPU a nível de contentor e telemetria, mas instalá-los manualmente ou através do Operador de GPU NVIDIA acrescenta sobrecarga operacional.
Ao utilizar nós de GPU totalmente geridos, a AKS instala e mantém o controlador da GPU NVIDIA, o plug-in de dispositivo e o exportador de métricas do Data Center GPU Manager (DCGM) metrics exporter para si. A criação de conjuntos de nós da GPU torna-se uma única etapa, e a capacidade da GPU comporta-se como qualquer outro conjunto de nós do AKS. Pode utilizar nós de GPU geridos com pools de nós de GPU criados manualmente e com aprovisionamento automático de nós (NAP), incluindo clusters AKS Automatic.
Configura um pool de nós de GPU gerido através de dois campos abaixo de gpuProfile.nvidia:
-
managementMode(ManagedouUnmanaged) controla se o AKS instala toda a stack de GPU gerida (driver, plugin de dispositivo e exportador de métricas DCGM) ou apenas o driver. A predefinição éUnmanaged. -
migStrategy(None,Single, ouMixed) define a estratégia de GPU Multi-Instância (MIG) para SKUs de GPU suportadas como A100 e H100. A predefinição éNone.
Neste artigo, provisiona um pool de nós de GPU gerido, opcionalmente ativa o MIG, valida o stack e executa uma carga de trabalho de GPU de exemplo.
Antes de começar
- Este artigo pressupõe que você tenha um cluster AKS existente. Se você não tiver um cluster, crie um usando a CLI do Azure, o Azure PowerShell ou o portal do Azure.
- Precisa de instalar a versão 2.85.0 ou posterior da CLI do Azure. Para localizar a versão, execute
az --version. Se precisar de instalar ou atualizar, consulte Install CLI do Azure. - Obtenha as credenciais para o seu cluster AKS com
az aks get-credentialsantes de executar os exemploskubectldeste artigo.
Componentes de GPU geridos
Um pool de nós de GPU gerido pode incluir os seguintes componentes em cada nó:
| Componente | O que faz | O que a AKS gere |
|---|---|---|
| Driver de GPU NVIDIA | Módulos do kernel e bibliotecas de espaço de utilizador que permitem ao sistema operativo e aos contentores comunicarem com o hardware da GPU. | Seleção da versão do driver, instalação durante o provisionamento do nó e reinstalação após as atualizações da imagem do nó. |
| Plugin de dispositivos NVIDIA Kubernetes | DaemonSet-equivalente que anuncia os recursos da GPU (nvidia.com/gpu, nvidia.com/mig-*) para o kubelet para que os pods os possam solicitar. |
Implementação, configuração (incluindo estratégia MIG) e ciclo de vida em cada nó da GPU. |
| Exportador de métricas NVIDIA DCGM e DCGM |
O Data Center GPU Manager recolhe dados de saúde e utilização da GPU e expõe métricas Prometheus (por exemplo, DCGM_FI_DEV_GPU_UTIL, DCGM_FI_DEV_GPU_TEMP) na porta 19400. |
Instalação, habilitação de serviços e a kubernetes.azure.com/dcgm-exporter=enabled etiqueta do nó usada para extrair métricas. |
| Sinais de saúde da GPU | Sinais NPD que revelam condições específicas de nós da GPU, como UnhealthyNvidiaDevicePlugin e UnhealthyNvidiaDCGMServices. |
Monitorização de NPD e reporte de condição nos nós da GPU. |
Instalar perfis
Dois gpuProfile campos decidem qual desses componentes o AKS instala:
-
gpuProfile.driver(InstallouNone): se o AKS instala o driver da GPU NVIDIA. -
gpuProfile.nvidia.managementMode(ManagedouUnmanaged): se o AKS também instala a pilha de GPU voltada para o Kubernetes sobre o driver.
Juntos, produzem três perfis de instalação:
| Perfil de instalação | Bandeiras CLI | O que o AKS instala e gere |
|---|---|---|
| Pilha completamente gerida |
--enable-managed-gpu=true (ou nenhuma das bandeiras) |
Os quatro componentes acima: driver, plugin de dispositivo, exportador de métricas DCGM e monitorização de saúde da GPU no NPD. |
| Apenas motorista (por defeito) | --enable-managed-gpu=false |
Apenas o driver da GPU NVIDIA. Instala e gere o plugin do dispositivo, o exportador de métricas e a monitorização da saúde (por exemplo, com o NVIDIA GPU Operator). |
| Nenhum (BYO) | --enable-managed-gpu=false --gpu-driver None |
Nada. O AKS não instala nenhum dos quatro componentes. Você é responsável pelo stack completo. Veja : Traga o seu próprio driver GPU. |
Predefinições e definições manuais
-
Predefinidos: Se não passar
--enable-managed-gpuou--gpu-driver, o AKS aplica o perfil Apenas controladores no conjunto de nós criado com uma dimensão de VM compatível com GPU NVIDIA. -
Override:
managementMode: Managedrequer o driver, por isso--gpu-driver Noneé ignorado quando--enable-managed-gpu=truee o driver ainda está instalado. Para saltar o driver, defina tanto--enable-managed-gpu=falsecomo--gpu-driver None. -
Imutabilidade:
managementMode,migStrategy, edriversão todas fixas na época da criação. Para alterar o perfil, crie um novo pool de nós.
Limitações
- Atualmente, esse recurso suporta apenas tamanhos de máquina virtual (VM) habilitada para GPU NVIDIA .
- A atualização de um pool de nós de uso geral para adicionar um tamanho de VM GPU não é suportada no AKS.
- Os agrupamentos de nós do Windows não são compatíveis com esta funcionalidade, porque as métricas de GPU não são suportadas. Quando crias pools de nós para GPUs Windows, o AKS instala e gere automaticamente os drivers e o plugin do dispositivo DirectX. Para mais informações, consulte a documentação AKS Windows GPU.
- Não há suporte para a migração de pools de nós de GPU de várias instâncias existentes para usar esse recurso.
- Atualizações no local de um pool de nós de GPU NVIDIA existente para um pool de nós de GPU gerido não são suportadas. Para migrar, limita e drena os teus nós GPU existentes, depois redistribui as cargas de trabalho para um novo pool de nós da GPU criado com
--enable-managed-gpu=true. Para obter mais informações, consulte Redimensionar pools de nós no AKS. - Os campos
managementMode,migStrategyedriversobgpuProfilesão imutáveis após a criação do pool de nós. Para alterar estes valores, crie um novo node pool.
Observação
As VMs habilitadas para GPU contêm hardware especializado sujeito a preços mais altos e disponibilidade de região. Para obter mais informações, consulte a ferramenta de preços e a disponibilidade da região.
Criar um pool de nós GPU gerido por AKS
Adicione um pool de nós de GPU gerido a um cluster AKS existente passando --enable-managed-gpu=true para az aks nodepool add. O AKS configura gpuProfile.nvidia.managementMode para Managed e instala automaticamente o driver da GPU, o plugin do dispositivo e o exportador de métricas DCGM.
Para clusters AKS Automatic ou AKS Standard que utilizam NAP, configure a pilha de GPU gerida no AKSNodeClass, em vez de utilizar az aks nodepool add.
- Pool de nós do Ubuntu Linux (SKU padrão)
- Grupo de nós do Azure Linux
- Grupo de nós com aprovisionamento automático
- Estratégia única
- Estratégia mista
- Apenas condutor
- Leva o teu próprio driver de GPU
Para usar o SKU padrão do sistema operacional Ubuntu (OS), você cria o pool de nós sem especificar um SKU do sistema operacional. O conjunto de nós é configurado para utilizar o sistema operacional padrão com base na versão do Kubernetes do cluster.
Adicione um pool de nós ao cluster usando o comando
az aks nodepool addcom a flag--enable-managed-gpu=true.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name gpunp \ --node-count 1 \ --node-vm-size Standard_NC4as_T4_v3 \ --node-taints sku=gpu:NoSchedule \ --enable-managed-gpu=trueConfirme se os componentes de software da GPU NVIDIA gerenciados foram instalados com êxito:
az aks nodepool show \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name gpunpSua saída deve incluir os seguintes valores:
... "gpuProfile": { "driver": "Install", "driverType": "", "nvidia": { "managementMode": "Managed", "migStrategy": null } }, ...