Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Om du kör NVIDIA GPU-arbetsbelastningar på Azure Kubernetes Service (AKS) måste du traditionellt installera och underhålla NVIDIA GPU-drivrutinen, Kubernetes-enhetsinsticksprogrammet och en GPU-måttexportör på varje GPU-nod. Dessa komponenter möjliggör GPU-schemaläggning, GPU-åtkomst på containernivå och telemetri, men om du installerar dem manuellt eller via NVIDIA GPU-operatorn läggs driftkostnaderna till.
Med fullständigt hanterade GPU-noder (förhandsversion) installerar och underhåller AKS NVIDIA GPU-drivrutinen, enhets-plugin-programmet och DCGM-måttexportören ( Data Center GPU Manager) åt dig. Skapandet av GPU-nodpoolen blir ett enda steg och GPU-kapaciteten fungerar som alla andra AKS-nodpooler.
Du konfigurerar en hanterad GPU-nodpool via två fält under gpuProfile.nvidia:
-
managementMode(ManagedellerUnmanaged) styr om AKS installerar den fullständiga hanterade GPU-stacken (drivrutins-, enhets-plugin- och DCGM-måttexportör) eller endast drivrutinen. Standardvärdet ärUnmanaged. -
migStrategy(None,Single, ellerMixed) anger mig-strategin (Multi-Instance GPU) för GPU-SKU:er som stöds, till exempel A100 och H100. Standardvärdet ärNone.
I den här artikeln etablerar du en hanterad GPU-noder pool, aktiverar MIG, verifierar stacken och kör en exempel-GPU-arbetsbelastning.
Viktigt!
AKS-förhandsversionsfunktioner är tillgängliga via självbetjäning och frivillig registrering. Förhandsversioner tillhandahålls "i befintligt skick" och "i mån av tillgång," och de är undantagna från servicenivåavtal och begränsad garanti. AKS-förhandsversioner stöds delvis av kundsupport efter bästa förmåga. Därför är dessa funktioner inte avsedda för produktionsanvändning. Mer information finns i följande supportartiklar:
Innan du börjar
- Den här artikeln förutsätter att du har ett befintligt AKS-kluster. Om du inte har ett kluster skapar du ett med hjälp av Azure CLI, Azure PowerShell eller Azure Portal.
- Du behöver Azure CLI version 2.85.0 eller senare installerad. Kör
az --versionför att hitta versionen. Om du behöver installera eller uppgradera, se Installera Azure CLI. - Du måste installera och uppgradera till den
aks-previewsenaste versionen av tillägget. - Hämta autentiseringsuppgifterna för ditt AKS-kluster med
az aks get-credentialsinnan du kör exemplen i denkubectlhär artikeln.
Hanterade GPU-komponenter
En hanterad GPU-nodpool kan innehålla följande komponenter på varje nod:
| Komponent | Vad det gör | Vad AKS hanterar |
|---|---|---|
| NVIDIA GPU-drivrutin | Kernel-moduler och användarutrymmesbibliotek som låter operativsystemet och containrarna prata med GPU-maskinvaran. | Val av drivrutinsversion, installation vid nodetablering och ominstallation efter nodbilduppgraderingar. |
| NVIDIA Kubernetes-enhetsinsticksprogram | DaemonSet-motsvarighet som annonserar GPU-resurser (nvidia.com/gpu, nvidia.com/mig-*) till kubelet så att poddar kan begära dem. |
Distribution, konfiguration (inklusive MIG-strategi) och livscykel på varje GPU-nod. |
| NVIDIA DCGM och DCGM-metrikexportör |
Data Center GPU Manager samlar in GPU-hälso- och användningsdata och exponerar Prometheus-mått (till exempel DCGM_FI_DEV_GPU_UTIL, DCGM_FI_DEV_GPU_TEMP) på port 19400. |
Installation, aktivering av tjänster och nodetiketten kubernetes.azure.com/dcgm-exporter=enabled som används för att skrapa metriker. |
| GPU-hälsosignaler | NPD-signaler som visar GPU-specifika nodförhållanden som UnhealthyNvidiaDevicePlugin och UnhealthyNvidiaDCGMServices. |
NPD-övervakning och villkorsrapportering på GPU-noder. |
Installera profiler
Två gpuProfile fält bestämmer vilka av dessa komponenter SOM AKS installerar:
-
gpuProfile.driver(InstallellerNone): om AKS installerar NVIDIA GPU-drivrutinen. -
gpuProfile.nvidia.managementMode(ManagedellerUnmanaged): om AKS även installerar Den Kubernetes-riktade GPU-stacken ovanpå drivrutinen.
Tillsammans skapar de tre installationsprofiler:
| Installera profil | CLI-flaggor | Vad AKS installerar och hanterar |
|---|---|---|
| Fullt hanterad stack |
--enable-managed-gpu=true (eller ingen flagga) |
Alla fyra komponenterna ovan: drivrutin, enhetsplugin, DCGM-måttexportör och GPU-hälsokontroll i NPD. |
| Endast drivrutin (standard) | --enable-managed-gpu=false |
NVIDIA GPU-drivrutin endast. Du installerar och hanterar enhetens plugin-program, måttexportör och hälsoövervakning själv (till exempel med NVIDIA GPU-operatorn). |
| Ingen (BYO) | --enable-managed-gpu=false --gpu-driver None |
Ingenting. AKS installerar inte någon av de fyra komponenterna. Du äger hela stacken. Se Ta med din egen GPU-drivrutin. |
Standardvärden och åsidosättningar
-
Standardvärden: Om du inte skickar
--enable-managed-gpueller--gpu-driveranvänder AKS profilen Endast drivrutin i nodpoolen som skapats med en NVIDIA GPU-aktiverad VM-storlek. -
Åsidosättning:
managementMode: Managedkräver drivrutinen, så--gpu-driver Noneignoreras när--enable-managed-gpu=trueoch drivrutinen fortfarande är installerad. För att hoppa över drivrutinen anger du både--enable-managed-gpu=falseoch--gpu-driver None. -
Oföränderlighet:
managementMode,migStrategyochdriverär alla fasta vid skapandetillfället. Om du vill ändra profil skapar du en ny nodpool.
Installera aks-preview CLI-tillägget
Installera
aks-previewCLI-tillägget genom att användaaz extension addkommandot. Version 19.0.0b29 eller senare krävs.az extension add --name aks-previewUppdatera tillägget för att säkerställa att du har den senaste versionen installerad med hjälp av kommandot
az extension update.az extension update --name aks-preview
Registrera funktionsflaggan ManagedGPUExperiencePreview
Registrera funktionsflaggan ManagedGPUExperiencePreview i din prenumeration med kommandot az feature register.
az feature register --namespace Microsoft.ContainerService --name ManagedGPUExperiencePreview
Begränsningar
- Den här funktionen stöder för närvarande endast NVIDIA GPU-aktiverade virtuella maskinstorlekar (VM).
- Uppdatering av en generell nodpool för att lägga till en GPU VM-storlek stöds inte i AKS.
- Windows nodpooler stöds inte med den här funktionen eftersom GPU-mått inte stöds. När du skapar Windows GPU-nodpooler installerar och hanterar AKS automatiskt drivrutinerna och DirectX-enhets-plugin-programmet. Mer information finns i dokumentationen AKS Windows GPU.
- Det går inte att migrera befintliga GPU-nodpooler med flera instanser för att använda den här funktionen.
- Uppgraderingar på plats från en befintlig NVIDIA GPU-nodpool till en hanterad GPU-nodpool stöds inte. Om du vill migrera, spärra och tömma dina befintliga GPU-noder distribuerar du sedan om arbetsbelastningarna till en ny GPU-nodpool som skapats med
--enable-managed-gpu=true. Mer information finns i Ändra storlek på nodpooler på AKS. - Fälten
managementMode,migStrategyochdriverundergpuProfileär oföränderliga när nodpoolen har skapats. Om du vill ändra dessa värden skapar du en ny nodpool. - Autoskalning av kluster stöds inte i hanterade GPU-nodpooler under förhandsversionen. Skala dessa grupper manuellt.
Anmärkning
GPU-aktiverade virtuella maskiner innehåller specialiserad hårdvara som är föremål för högre prissättning och regionsspecifik tillgänglighet. Mer information finns i prisverktyget och regionens tillgänglighet.
Skapa en AKS-hanterad GPU-nodpool (förhandsversion)
Lägg till en hanterad GPU-nodpool i ett befintligt AKS-kluster genom att skicka --enable-managed-gpu=true till az aks nodepool add. AKS ställer in gpuProfile.nvidia.managementMode på Managed och installerar GPU-drivrutinen, enhets-plugin-programmet och DCGM-måttexportören automatiskt.
Om du vill använda standard-SKU:n för Ubuntu-operativsystemet (OS) skapar du nodpoolen utan att ange en OS-SKU. Nodpoolen är konfigurerad för standardoperativsystemet baserat på Kubernetes-versionen av klustret.
Lägg till en nodpool i klustret med kommandot
az aks nodepool addmed--enable-managed-gpu=trueflaggan .az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name gpunp \ --node-count 1 \ --node-vm-size Standard_NC6s_v3 \ --node-taints sku=gpu:NoSchedule \ --enable-managed-gpu=trueKontrollera att de hanterade NVIDIA GPU-programvarukomponenterna har installerats:
az aks nodepool show \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name gpunpDina utdata bör innehålla följande värden:
... "gpuProfile": { "driver": "Install", "driverType": "", "nvidia": { "managementMode": "Managed", "migStrategy": null } }, ...
Skapa en hanterad nodpool för Multi-Instance GPU (MIG) (förhandsgranskning)
För GPU-SKU:er som stöder GPU för flera instanser (till exempel A100 och H100) konfigurerar du en MIG-strategi vid skapandet av nodpoolen --gpu-mig-strategy med flaggan . Strategin styr hur MIG-partitioner exponeras för Kubernetes:
-
Single: Alla MIG-instanser aggregeras under standardresursennvidia.com/gpu. -
Mixed: Varje MIG-profil exponeras som en separat resurs, till exempelnvidia.com/mig-1g.10gb. -
None(standard): MIG är inte konfigurerat.
Fältet migStrategy kan inte ändras när nodpoolen har skapats.
Bakgrund om MIG-partitionering, vm-storlekar som stöds och GPU-instansprofiler finns i Skapa en GPU-nodpool med flera instanser i AKS och NVIDIA Multi-Instance GPU.
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name mignp \
--node-count 1 \
--node-vm-size Standard_NC24ads_A100_v4 \
--node-taints sku=gpu:NoSchedule \
--enable-managed-gpu=true \
--gpu-instance-profile MIG1g \
--gpu-mig-strategy Single
Med den här konfigurationen begär poddar GPU-resurser med hjälp av standardresursnamnet nvidia.com/gpu .
Verifiera den hanterade GPU-nodpoolen (förhandsversion)
När nodpoolen är klar kör du följande kontroller för att bekräfta att den fullständiga hanterade stacken är installerad och felfri.
Verifiera GPU-specifika nodvillkor från Nodproblemidentifiering (NPD):
GPU_NODE=$(kubectl get nodes -l agentpool=gpunp -o jsonpath='{.items[0].metadata.name}') kubectl describe node $GPU_NODEPå en hanterad GPU-nod bör följande villkor båda rapportera
False:Tillstånd Status Förnuft UnhealthyNvidiaDevicePluginFalseHealthyNvidiaDevicePluginUnhealthyNvidiaDCGMServicesFalseHealthyNvidiaDCGMServicesKontrollera att den hanterade GPU-etiketten finns på noden:
kubectl get node $GPU_NODE -o jsonpath='{.metadata.labels.kubernetes\.azure\.com/dcgm-exporter}'Förväntade utdata:
enabled.Kontrollera att GPU-resurser annonseras i nodens allokerbara resurser:
kubectl get node $GPU_NODE -o jsonpath='{.status.allocatable}'För en icke-MIG-nodpool inkluderar utdata
"nvidia.com/gpu": "1"(eller mer beroende på SKU). För en MIG-nodpoolMixedinnehåller utdata MIG-specifika resurser, till exempel"nvidia.com/mig-1g.10gb": "7".Kör en exempelarbetsbelastning för att bekräfta GPU-åtkomst inifrån en container:
apiVersion: v1 kind: Pod metadata: name: managed-gpu-test spec: restartPolicy: Never tolerations: - key: "sku" operator: "Equal" value: "gpu" effect: "NoSchedule" containers: - name: gpu-test image: mcr.microsoft.com/azuredocs/samples-tf-mnist-demo:gpu command: ["nvidia-smi"] resources: limits: nvidia.com/gpu: 1Visa poddloggarna för att se
nvidia-smiutdata som visar GPU-enheten, drivrutinsversionen och CUDA-versionen:kubectl logs managed-gpu-test
Skala en hanterad GPU-nodpool (förhandsversion)
Skala en hanterad GPU-nodpool manuellt med az aks nodepool scale. Nya noder installerar den fullständiga hanterade GPU-stacken.
az aks nodepool scale \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name gpunp \
--node-count 2
Viktigt!
Under förhandsversionen stöder hanterade GPU-nodpooler inte autoskalning av kluster. Skala dessa poolar manuellt.
Alternativa installationsprofiler
Om den fullständiga hanterade stackprofilen inte passar rätt stöder AKS två alternativa profiler i GPU-nodpooler.
Använd den här profilen när du vill att AKS ska installera och underhålla NVIDIA GPU-drivrutinen, men du planerar att distribuera enhets-plugin-programmet och måttexportören själv (till exempel med NVIDIA GPU-operatorn). Ange --enable-managed-gpu=false:
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name gpunp \
--node-count 1 \
--node-vm-size Standard_NC6s_v3 \
--node-taints sku=gpu:NoSchedule \
--enable-managed-gpu=false
Med den här konfigurationen:
- AKS installerar och hanterar NVIDIA GPU-drivrutinen (
gpuProfile.driverärInstall). - AKS installerar inte ett enhets-plugin-program, DCGM-måttexportör eller GPU-hälsoregler.
gpuProfile.nvidiaärnull. - Ingen
nvidia.com/gpuresurs publiceras förrän du distribuerar ett enhetsinsticksprogram.
Nästa steg
- Distribuera en GPU-exempelarbetsbelastning på dina AKS-hanterade GPU-aktiverade noder.
- Lär dig mer om GPU-användning och prestandamått från hanterad NVIDIA DCGM-exportör i din GPU-nodpool.
Relaterade artiklar
- Använd NVIDIA GPU:er på AKS för den vanliga (icke-hanterade) GPU-upplevelsen.
- Skapa en multi-instance GPU-nodpool (MIG) för information om MIG-partitionering och VM-storlekar som stöds
- NVIDIA GPU-operatör för att hantera GPU-drivrutiner och enhetens plugin-program själv.
- Övervaka GPU-mått från den hanterade NVIDIA DCGM-exportören.
- GPU-hälsoövervakning med Node Problem Detector (NPD) på AKS.
- Använd Windows GPU:er på AKS för Windows GPU-nodpooler.
- Azure GPU VM-storlekar för den fullständiga listan över NVIDIA GPU-aktiverade virtuella datorer.
- Kör distribuerad slutsatsdragning på flera AKS GPU-noder.