Vytvoření plně spravovaného fondu uzlů GPU ve službě Azure Kubernetes Service (AKS) (Preview)

Spouštění úloh NVIDIA GPU na Azure Kubernetes Service (AKS) tradičně vyžaduje instalaci a údržbu ovladače NVIDIA GPU, modulu plug-in zařízení Kubernetes a exportu metrik GPU na každém uzlu GPU. Tyto komponenty umožňují plánování GPU, přístup k GPU na úrovni kontejneru a telemetrii, ale jejich ruční instalaci nebo prostřednictvím operátoru GPU NVIDIA přidává provozní režii.

S plně spravovanými uzly GPU (Preview) AKS za vás nainstaluje a udržuje ovladač NVIDIA GPU, zásuvný modul zařízení a exportér metrik Data Center GPU Manageru (DCGM). Vytvoření fondu uzlů GPU se stane jedním krokem a kapacita GPU se chová stejně jako jakýkoli jiný fond uzlů AKS.

Fond spravovaných uzlů GPU nakonfigurujete prostřednictvím dvou polí v části gpuProfile.nvidia:

  • managementMode (Managed nebo Unmanaged) určuje, jestli AKS nainstaluje kompletní spravovaný zásobník GPU (ovladač, modul plug-in zařízení a exportér metrik DCGM) nebo pouze ovladač. Výchozí hodnota je Unmanaged.
  • migStrategy (None, Single, nebo Mixed) nastaví strategii víceinstanční GPU (MIG) pro podporované modely GPU, jako jsou A100 a H100. Výchozí hodnota je None.

V tomto článku zřídíte spravovaný fond uzlů GPU, volitelně povolíte MIG, a následně ověříte sestavení systému a spustíte testovací úlohu GPU.

Důležité

Funkce AKS ve verzi Preview jsou k dispozici na bázi samoobsluhy a dobrovolného přihlášení. Ukázky jsou poskytovány "jak jsou" a "podle aktuální dostupnosti" a jsou vyloučené ze smluv o úrovni služeb a omezené záruky. Předběžné verze AKS jsou částečně pokryty zákaznickou podporou podle možností. Proto tyto funkce nejsou určené pro produkční použití. Další informace najdete v následujících článcích podpory:

Než začnete

Spravované komponenty GPU

Fond spravovaných uzlů GPU může na každém uzlu obsahovat následující komponenty:

Součást Jak funguje Co AKS spravuje
Ovladač NVIDIA GPU Moduly jádra a knihovny uživatelského prostoru, které umožňují operačnímu systému a kontejnerům komunikovat s hardwarem GPU. Výběr verze ovladače, instalace při konfiguraci uzlu a přeinstalace po upgradu image uzlu.
Modul plug-in zařízení NVIDIA Kubernetes Ekvivalent DaemonSetu, který oznamuje prostředky GPU (nvidia.com/gpu, nvidia.com/mig-*) kubeletu tak, aby je Pody mohly požádat. Nasazení, konfigurace (včetně strategie MIG) a životní cyklus na každém uzlu GPU
Exportér metrik NVIDIA DCGM a DCGM Data Center GPU Manager shromažďuje data o stavu a využití GPU a zveřejňuje metriky Prometheus (například DCGM_FI_DEV_GPU_UTIL, DCGM_FI_DEV_GPU_TEMP) na portu 19400. Instalace, povolení služby a označení uzlu kubernetes.azure.com/dcgm-exporter=enabled používané ke sběru metrik.
Signály stavu GPU NPD signalizuje povrchové uzlové podmínky specifické pro GPU, jako UnhealthyNvidiaDevicePlugin a UnhealthyNvidiaDCGMServices. Monitorování NPD a hlášení podmínek na GPU uzlech.

Instalace profilů

Dvě gpuProfile pole rozhodují o tom, které součásti AKS nainstaluje:

  • gpuProfile.driver (Install nebo None): zda AKS nainstaluje ovladač NVIDIA GPU.
  • gpuProfile.nvidia.managementMode (Managed nebo Unmanaged): zda AKS také instaluje GPU zásobník orientovaný na Kubernetes na vrch ovladače.

Společně vytvářejí tři instalační profily:

Instalace profilu Příznaky rozhraní příkazového řádku Co AKS instaluje a spravuje
Plně spravovaná architektura --enable-managed-gpu=true (nebo ani příznak) Všechny čtyři komponenty výše: ovladač, modul plug-in zařízení, exportér metrik DCGM a monitorování stavu GPU v NPD.
Pouze ovladač (výchozí) --enable-managed-gpu=false Pouze ovladač NVIDIA GPU. Modul plug-in zařízení, exportér metrik a monitorování stavu instalujete a spravujete sami (například pomocí operátoru NVIDIA GPU).
Žádné (BYO) --enable-managed-gpu=false --gpu-driver None Nic. AKS nenainstaluje žádnou ze čtyř komponent. Vlastníte celý technologický stack. Podívejte se na Bring your own GPU driver.

Výchozí hodnoty a přepsání

  • Výchozí hodnoty: Pokud neposkytnete --enable-managed-gpu nebo --gpu-driver, AKS použije profil pouze ovladač ve fondu uzlů vytvořeném s velikostí virtuálního počítače s GPU NVIDIA.
  • Přepsání: managementMode: Managed vyžaduje ovladač, takže je --gpu-driver None ignorován, pokud je --enable-managed-gpu=true a ovladač je stále nainstalován. Chcete-li přeskočit ovladač, nastavte obě --enable-managed-gpu=false a --gpu-driver None.
  • Neměnnost: managementMode, migStrategya driver jsou všechny opraveny při vytváření. Pokud chcete změnit profil, vytvořte nový fond uzlů.

Nainstalujte rozšíření rozhraní příkazového aks-preview řádku

  1. Nainstalujte CLI rozšíření pomocí příkazu aks-preview. Vyžaduje se verze 19.0.0b29 nebo novější.

    az extension add --name aks-preview
    
  2. Pomocí příkazu aktualizujte rozšíření, abyste měli nainstalovanou az extension update nejnovější verzi.

    az extension update --name aks-preview
    

Zaregistruj příznak funkce ManagedGPUExperiencePreview

Zaregistrujte příznak funkce ManagedGPUExperiencePreview ve svém předplatném pomocí příkazu az feature register.

az feature register --namespace Microsoft.ContainerService --name ManagedGPUExperiencePreview

Omezení

  • Tato funkce v současné době podporuje pouze velikosti virtuálních počítačů s podporou GRAFICKÉho procesoru NVIDIA .
  • Aktualizace fondu uzlů pro obecné účely pro přidání velikosti virtuálního počítače GPU není v AKS podporovaná.
  • Windows pooly uzlů nejsou touto funkcí podporovány, protože metriky GPU nejsou podporovány. Když vytváříte fondy uzlů GPU pro Windows, AKS automaticky instaluje a spravuje ovladače a modul plug-in pro zařízení DirectX. Další informace najdete v dokumentaci k AKS Windows GPU.
  • Migrace stávajících fondů uzlů GPU s více instancemi pro použití této funkce není podporovaná.
  • Místní upgrady z existujícího fondu uzlů NVIDIA GPU na spravovaný fond uzlů GPU se nepodporují. Pokud chcete migrovat, cordonovat a vyprázdnit stávající uzly GPU a pak znovu nasadit úlohy do nového fondu uzlů GPU vytvořeného pomocí --enable-managed-gpu=true. Další informace najdete v tématu Změna velikosti poolů uzlů v AKS.
  • Pole managementMode, migStrategy a driver pod gpuProfile jsou neměnná po vytvoření fondu uzlů. Pokud chcete tyto hodnoty změnit, vytvořte nový fond uzlů.
  • Automatické škálování clusteru není ve spravovaných fondech uzlů GPU ve verzi Preview podporované. Škálujte tyto pooly ručně.

Poznámka:

Virtuální stroje s podporou GPU obsahují specializovaný hardware, který podléhá vyšším cenám a dostupnosti dle regionu. Pro více informací se podívejte na nástroj ceny a dostupnost regionů.

Vytvoření fondu uzlů GPU spravovaného službou AKS (Preview)

Přidejte spravovaný fond uzlů GPU do existujícího klastru AKS předáním --enable-managed-gpu=true do az aks nodepool add. AKS nastaví gpuProfile.nvidia.managementMode na Managed a automaticky nainstaluje ovladač GPU, plugin zařízení a exportér metrik DCGM.

Pokud chcete použít výchozí skladovou položku operačního systému Ubuntu (OS), vytvoříte fond uzlů bez zadání skladové položky operačního systému. Fond uzlů je nakonfigurovaný pro výchozí operační systém založený na verzi Kubernetes clusteru.

  1. Přidejte fond uzlů do clusteru pomocí příkazu az aks nodepool add s příznakem --enable-managed-gpu=true.

    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=true
    
  2. Ověřte, že jsou spravované softwarové komponenty NVIDIA GPU úspěšně nainstalovány:

    az aks nodepool show \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name gpunp
    

    Výstup by měl obsahovat následující hodnoty:

    ...
    "gpuProfile": {
        "driver": "Install",
        "driverType": "",
        "nvidia": {
            "managementMode": "Managed",
            "migStrategy": null
        }
    },
    ...
    

Vytvoření spravovaného fondu uzlů GPU (MIG) s více instancemi (Preview)

U skladových položek GPU, které podporují více instancí GPU (například A100 a H100), nakonfigurujte strategii MIG při vytváření fondu uzlů pomocí příznaku --gpu-mig-strategy . Strategie řídí, jak se oddíly MIG zobrazují v Kubernetes.

  • Single: Všechny instance MIG jsou agregovány pod standardním nvidia.com/gpu zdrojem.
  • Mixed: Každý profil MIG je prezentován jako samostatný prostředek, například nvidia.com/mig-1g.10gb.
  • None (výchozí): MIG není nakonfigurovaný.

Pole migStrategy je neměnné po vytvoření fondu uzlů.

Základní informace o dělení MIG, podporovaných velikostech virtuálních počítačů a profilech instancí GPU najdete v tématu Vytvoření fondu uzlů GPU s více instancemi v AKS a GPU NVIDIA Multi-Instance.

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

V této konfiguraci pody požadují prostředky GPU pomocí standardního nvidia.com/gpu názvu prostředku.

Ověřte spravovaný fond uzlů GPU (náhled)

Jakmile je fond uzlů připravený, spusťte následující kontroly a ověřte, že je nainstalovaný a funkční celý spravovaný technologický balík.

  1. Ověřte podmínky uzlu specifické pro GPU z detektoru problémů uzlů (NPD):

    GPU_NODE=$(kubectl get nodes -l agentpool=gpunp -o jsonpath='{.items[0].metadata.name}')
    kubectl describe node $GPU_NODE
    

    Na spravovaném uzlu GPU by měly obě tyto podmínky hlásit False:

    Podmínka Stav Reason
    UnhealthyNvidiaDevicePlugin False HealthyNvidiaDevicePlugin
    UnhealthyNvidiaDCGMServices False HealthyNvidiaDCGMServices
  2. Ověřte, že se na uzlu nachází popisek spravovaného GPU:

    kubectl get node $GPU_NODE -o jsonpath='{.metadata.labels.kubernetes\.azure\.com/dcgm-exporter}'
    

    Očekávaný výstup: enabled.

  3. Ověřte, že se prostředky GPU uvádějí v alokovatelných prostředcích uzlu:

    kubectl get node $GPU_NODE -o jsonpath='{.status.allocatable}'
    

    Pro pool uzlů, který není MIG, výstup obsahuje "nvidia.com/gpu": "1" (nebo více) v závislosti na SKU. Pro fond uzlů MIG Mixed výstup zahrnuje prostředky specifické pro MIG, například "nvidia.com/mig-1g.10gb": "7".

  4. Spusťte ukázkovou úlohu, abyste potvrdili přístup GPU z kontejneru:

    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: 1
    

    Prohlédněte si protokoly podů a zobrazte nvidia-smi výstup zobrazující zařízení GPU, verzi ovladače a verzi CUDA:

    kubectl logs managed-gpu-test
    

Škálování spravovaného fondu uzlů GPU (Preview)

Ručně škálovat spravovaný fond uzlů GPU pomocí az aks nodepool scale. Nové uzly nainstalují kompletní spravovaný zásobník GPU.

az aks nodepool scale \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name gpunp \
    --node-count 2

Důležité

Ve verzi Preview spravované fondy uzlů GPU nepodporují automatické škálování clusteru. Škálujte tyto pooly ručně.

Alternativní instalační profily

Pokud úplný profil spravovaného zásobníku není správný, AKS podporuje dva alternativní profily ve fondech uzlů GPU.

Tento profil použijte, pokud chcete, aby AKS nainstaloval a zachoval ovladač NVIDIA GPU, ale plánujete nasadit modul plug-in zařízení a export metrik sami (například s operátorem NVIDIA GPU). Nastavit --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

S touto konfigurací:

  • AKS nainstaluje a spravuje ovladač NVIDIA GPU (gpuProfile.driver je Install).
  • AKS nenainstaluje modul plug-in zařízení, exportér metrik DCGM ani pravidla stavu GPU. gpuProfile.nvidia je null.
  • Dokud nenasadíte modul plug-in zařízení, žádný prostředek se neinzeruje nvidia.com/gpu .

Další kroky