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.
Vissa NVIDIA GPU:er kan delas in i upp till sju oberoende instanser. Varje instans har en egen SM (Streaming Multiprocessor), som kör instruktioner parallellt, samt eget GPU-minne. Mer information om GPU-partitionering finns i NVIDIA MIG.
Använd single strategy-MIG (multi-instance GPU) i AKS-klustret för att köra arbetsbelastningar på GPU-partitioner med enhetlig storlek. Varje arbetsbelastning begär nvidia.com/gpu, där en enhet representerar en partition i stället för en hel fysisk GPU. AKS installerar och konfigurerar NVIDIA-drivrutinen och enhets-plugin-programmet för den här sökvägen. Information om val av strategi och namngivning av resurser finns i GPU-strategier för flera instanser i AKS. Information om hur du skapar partitioner med olika storlek finns i Konfigurera mixed MIG-strategi.
Den här artikeln beskriver hur du anger en enskild strategi med en MIG-nodpool med hjälp av en kompatibel VM-storlek i ett Azure Kubernetes Service (AKS) kluster.
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:
Limitations
- Nodpooler med
AzureContainerLinuxochWindowsOS-SKU:er stöds för närvarande inte med den här funktionen. - Du kan inte ändra profilkonfigurationen efter att MIG-nodpoolen har skapats. Skapa en ersättningspool för att ändra layouten eller sluta använda MIG. Försök inte inaktivera MIG genom att uppdatera strategin till
None.
Innan du börjar
- Ett Azure-abonnemang. Om du inte har ett, skapar du ett Azure kostnadsfritt konto.
- Installera Azure CLI version
2.85.0eller senare ochaks-previewversion22.0.0b15eller senare. Köraz --versionför att kontrollera din Azure CLI version. - En MIG-kompatibel GPU VM-storlek som stöds i den valda AKS-regionen. Se till att du har tillräckligt med regional och GPU-familj vCPU-kvot för den VM-storlek och det nodantal som du planerar att distribuera.
- Se till att någon befintlig självhanterad NVIDIA-enhetsplugin eller GPU-operator inte också hanterar den nya MIG-nodpoolens noder.
Välj en enhetlig GPU-profil
Ange exakt en profil för Single så att AKS kan skapa en enhetlig partitionslayout. I följande tabell visas profilerna för NVIDIA A100 80 GB GPU. Antalet är per fysisk GPU, inte per nod.
Standard_NC24ads_A100_v4 har en A100 80 GB GPU, så MIG3g ger två partitioner för den VM-storleken.
| Profilargument | Partition | Beräkna andel | Minnesandel | Partitioner per GPU |
|---|---|---|---|---|
MIG1g |
1g.10gb | 1/7 | 1/8 | 7 |
MIG2g |
2g.20gb | 2/7 | 2/8 | 3 |
MIG3g |
3g.40gb | 3/7 | 4/8 | 2 |
MIG4g |
4g.40gb | 4/7 | 4/8 | 1 |
MIG7g |
7g.80gb | 7 juli | 8/8 | 1 |
GPU-minne per profil varierar beroende på NVIDIA GPU-modell. Tillämpa inte den här tabellens minnesstorlekar eller antalet noder på en annan SKU utan att bekräfta GPU-konfigurationen.
Ange miljövariabler och förbered din Azure-prenumeration
export SUBSCRIPTION_ID="<subscription-id>"
export RESOURCE_GROUP="<my-resource-group>"
export CLUSTER_NAME="<my-cluster-name>"
export SINGLE_POOL="migsingle"
Välj Azure-prenumeration:
az account set --subscription "$SUBSCRIPTION_ID"
Anslut till ditt AKS-kluster:
az aks get-credentials \
--resource-group "$RESOURCE_GROUP" \
--name "$CLUSTER_NAME"
Registrera förhandsgranskningsfunktionerna
Installera eller uppdatera det tillägg som krävs:
az extension add --name aks-preview --upgrade --yes
Registrera funktionen ManagedGPUExperiencePreview :
az feature register \
--namespace Microsoft.ContainerService \
--name ManagedGPUExperiencePreview
Registrera funktionen MixedMIGStrategyPreview :
az feature register \
--namespace Microsoft.ContainerService \
--name MixedMIGStrategyPreview
Kontrollera varje registrering:
az feature show \
--namespace Microsoft.ContainerService \
--name ManagedGPUExperiencePreview \
--query properties.state --output tsv
az feature show \
--namespace Microsoft.ContainerService \
--name MixedMIGStrategyPreview \
--query properties.state --output tsv
När båda returnerar Registereduppdaterar du providerregistreringen:
az provider register --namespace Microsoft.ContainerService
Aktivera single strategy MIG på en ny nodpool
Om du vill använda os-standard-SKU:n skapar du nodpoolen utan att ange en OS-SKU. Nodpoolen är konfigurerad för standardoperativsystemet baserat på Kubernetes-versionen av klustret. Skapa den enhetliga poolen med --enable-managed-gpu=true och exakt en MIG-profil:
az aks nodepool add \
--resource-group "$RESOURCE_GROUP" \
--cluster-name "$CLUSTER_NAME" \
--name "$SINGLE_POOL" \
--node-vm-size Standard_NC24ads_A100_v4 \
--enable-managed-gpu=true \
--gpu-mig-strategy Single \
--gpu-mig-profiles MIG3g \
--node-count 1
Verifiera konfiguration och GPU-partitionskapacitet
Kontrollera de hanterade GPU-inställningarna, profillistan och AKS-nodbilden:
az aks nodepool show \
--resource-group "$RESOURCE_GROUP" \
--cluster-name "$CLUSTER_NAME" \
--name "$SINGLE_POOL" \
--query "{state:provisioningState,image:nodeImageVersion,gpu:gpuProfile.nvidia}" \
--output json
Kontrollera följande värden i utdata. GPU-värdena visas under gpu nyckeln.
| Utdatafält | Förväntat värde |
|---|---|
state |
Succeeded |
gpu.managementMode |
Managed |
gpu.driverMode |
DevicePlugin |
gpu.migStrategy |
Single |
gpu.migProfiles |
Endast den profil som du angav (MIG3g i det här exemplet) |
image |
En VHD-version av nodavbildningen 202609.01.0 eller senare, vilket krävs för --gpu-mig-profiles |
Vänta tills poolens noder blir Ready.
kubectl wait --for=condition=Ready node \
-l agentpool="$SINGLE_POOL" --timeout=600s
Kontrollera alla noder i nodpoolen:
kubectl describe nodes -l agentpool="$SINGLE_POOL"
För en Standard_NC24ads_A100_v4 nod med profilen MIG3g (en A100 80 GB GPU, som ger två partitioner), Allocatable bör avsnittet innehålla:
Allocatable:
nvidia.com/gpu: 2
Varje enhet har en kapacitet på en 3g.40gb MIG-partition.
Kör en arbetsbelastning på en MIG-partition
Skapa single-strategy-example.yaml med följande manifest. Uppdatera väljaren om du har ändrat namnet på nodpoolen.
apiVersion: v1
kind: Pod
metadata:
name: nvidia-single
spec:
restartPolicy: Never
nodeSelector:
agentpool: migsingle
containers:
- name: gpu-test
image: mcr.microsoft.com/azuredocs/samples-tf-mnist-demo:gpu
command: ["nvidia-smi"]
resources:
limits:
nvidia.com/gpu: "1"
Selektorn är viktig eftersom en fullständig GPU-pool också kan annonsera nvidia.com/gpu. Kubernetes behandlar en utelämnad begäran som lika med den utökade resursgränsen. Om du anger båda, använd lika heltalsvärden.
Distribuera pod:
kubectl apply -f single-strategy-example.yaml
Vänta tills slutförandet har slutförts:
kubectl wait --for=jsonpath='{.status.phase}'=Succeeded \
pod/nvidia-single --timeout=300s
Läs dess enhetsinformation:
kubectl logs nvidia-single
Bekräfta att nvidia-smi körs utan fel och rapporterar en tilldelad MIG-enhet. För en explicit kontroll av enhetslistan ändrar du exempelkommandot till ["nvidia-smi", "-L"], tar bort den slutförda podden och tillämpar manifestet igen. Upprepa slutförandeväntningen och loggkontrollen. Med Standard_NC24ads_A100_v4 och profilen MIG3g bör loggarna visa en tilldelad 3g.40gb MIG-enhet.
Förstå validering och befintlig funktionskompatibilitet
Jämför sätt att konfigurera MIG med en enda strategi
Funktionen --gpu-instance-profile är fortfarande tillgänglig för att konfigurera ditt eget enhetsinsticksprogram för NVIDIA GPU. Följande alternativ separerar GPU-layoutkonfigurationen från ansvaret för enhetsplugin-programmet.
| Konfigurationssökväg | Azure CLI inställningar när poolen skapas | Strategi och ägare för enhetsplugin | API-representation |
|---|---|---|---|
| Befintlig profil med en självkonfigurerad plugin |
--gpu-instance-profile <profile> utan att aktivera den hanterade GPU-upplevelsen. |
Du installerar och konfigurerar den självhanterade NVIDIA device plugin med migStrategy=single. |
gpuInstanceProfile anger den enhetliga layouten. Inställningen migStrategy för det självhanterade enhetsplugin-programmet lagras inte som en ny inställning i AKS-profillistan. Du ansvarar fortfarande för livscykeln för det självhanterade insticksprogrammet för enheter. |
| Befintlig profil med ett plugin för hanterad enhet |
--enable-managed-gpu=true --gpu-instance-profile <profile>. |
AKS hanterar pluginet för den enhetliga vägen med en enda strategi och inga separata plugin-ändringar krävs. | Fältet --gpu-instance-profile finns kvar. API:et genererar inte migProfiles eller migStrategy när endast --gpu-instance-profile anges. |
| Profillista med ett hanterat insticksprogram |
--enable-managed-gpu=true --gpu-mig-strategy Single --gpu-mig-profiles <profile>. Ange exakt en profil. |
AKS konfigurerar det hanterade NVIDIA-enhetspluginet pluginet för Single. Ingen manuell konfiguration krävs. |
gpuProfile.nvidia.migStrategy och gpuProfile.nvidia.migProfiles beskriver konfigurationen uttryckligen. |
Alla tre sökvägarna för en enda strategi exponerar partitioner som nvidia.com/gpu när de konfigureras på en NVIDIA GPU-nodpool. Enbart resursnamnet identifierar inte partitionsstorleken eller om AKS hanterar plugin-programmet.
Verifiera MIG-profilkonfigurationen
- Ange exakt ett profilvärde till
--gpu-mig-profilesförSingle, inte upprepade poster för att ange antal partitioner. - Ange inte heller flaggan
--gpu-instance-profile. Du kan inte kombinera--gpu-instance-profileoch--gpu-mig-profilespå samma MIG-nodpool.
Flaggan --gpu-instance-profile stöds fortfarande för den enskilda strategin och AKS konverterar den inte automatiskt till --gpu-mig-profiles. Om du vill verifiera en ny nodpool som skapats med --gpu-mig-strategy och --gpu-mig-profiles, kör az aks nodepool show och kontrollera gpuProfile.nvidia.migStrategy och gpuProfile.nvidia.migProfiles.
Migrera för att använda hanterade MIG-profiler
Inventera den aktuella poolens VM-storlek,
gpuInstanceProfilenodavbildning och annonserad partitionskapacitet. Registrera arbetsbelastningsväljare, tillhörighet, taints, toleranser och GPU-begäranden. Kontrollera om det befintliga NVIDIA-enhets-plugin-programmet eller GPU-operatorn hanterar andra nodpooler.Se till att ditt självhanterade NVIDIA device plugin och alla GPU-operatörer inte hanterar noderna i ersättnings-MIG-poolen. Justera deras nodinriktning med hjälp av konfigurationen som stöds för installationen.
Skapa en ersättnings-MIG-nodpool med ett distinkt namn. Om du till exempel vill bevara en
MIG3glayout påStandard_NC24ads_A100_v4använder du följande kommando. Ersätt den SKU och den enskilda profil som stöds och som matchar din migreringsplan. Skicka inte--gpu-instance-profile.az aks nodepool add \ --resource-group "$RESOURCE_GROUP" \ --cluster-name "$CLUSTER_NAME" \ --name migreplacement \ --node-vm-size Standard_NC24ads_A100_v4 \ --enable-managed-gpu=true \ --gpu-mig-strategy Single \ --gpu-mig-profiles MIG3g \ --node-count 1Kör konfigurations-, readiness-, kapacitets- och arbetsbelastningskontrollerna i den här artikeln mot
migreplacement. Uppdatera exempelväljaren tillagentpool: migreplacement. Bekräfta den förväntade partitionsstorleken och enhetsåtkomsten innan du flyttar programarbetsbelastningar.Flytta arbetsbelastningar gradvis genom att uppdatera poolväljare eller tillhörighet och eventuella nödvändiga toleranser. Arbetsbelastningar med en enda strategi fortsätter att begära
nvidia.com/gpu. Kontrollera programmets beteende, genomströmning, svarstid och minnesanvändning i ersättningspoolen.När du har verifierat ersättningen ska du evakuera eller avveckla arbetsbelastningar i den gamla nodpoolen och ta bort den. Behåll den gamla poolen tillgänglig tills migreringsverifieringen är klar när kapaciteten tillåter det. Ta bort installationen av den självhanterade NVIDIA-enhetspluginen först när du har bekräftat att inga återstående pooler behöver den.
Felsöka och ta bort nodpoolen
Felsöka schemaläggning och annonsering av partitioner
En podd som begär fler nvidia.com/gpu resurser än de berättigade noderna kan tillhandahålla förblir väntande med en schemaläggningshändelse för otillräcklig resurs. Granska dess status och händelser:
kubectl describe pod nvidia-single
Om noder inte rapporterar partitioner kontrollerar du nodvillkor, hanterade inställningar och den valda bilden och profilen. Installera inte ett andra plugin-program eller patcha AKS-hanterade komponenter som en tillfällig lösning.
Följande fel kan inträffa när du skapar nodpoolen:
| Felkod | Cause | Åtgärd |
|---|---|---|
MIGNotSupportedForVMSize |
Vm-storleken stöder inte MIG. | Använd en MIG-kompatibel GPU VM-storlek som stöds. |
InvalidOrNoneMIGProfile |
Profilen är ogiltig eller så har du angett None. |
Ange exakt en giltig MIG-profil för vm-storleken. |
MIGProfilesNodeImageNotSupported |
AKS-nodavbilden är äldre än den lägsta versionen som stöds. | Använd en nodbildversion av 202609.01.0 eller senare. |
Azure CLI kan visa BadRequest som kod på toppnivå, så läs även verifieringsmeddelandet.
Ta bort exempelpodden och MIG-nodpoolen
Ta bort exempelpodden:
kubectl delete pod nvidia-single --ignore-not-found=true
Innan du tar bort en nodpool som kör andra arbetsbelastningar skapar du ersättningskapacitet, migrerar arbetsbelastningarna och kontrollerar programmets hälsotillstånd. Ta sedan bort nodpoolen:
az aks nodepool delete \
--resource-group "$RESOURCE_GROUP" \
--cluster-name "$CLUSTER_NAME" \
--name "$SINGLE_POOL"
Kontrollera att MIG-nodpoolen har tagits bort:
az aks nodepool list \
--resource-group "$RESOURCE_GROUP" \
--cluster-name "$CLUSTER_NAME" \
--query "[?name=='$SINGLE_POOL'].name" --output json
Utdata ska vara []. Bekräfta att inga Kubernetes-noder finns kvar för poolen:
kubectl get nodes -l agentpool="$SINGLE_POOL"