Tworzenie w pełni zarządzanej puli węzłów procesora GPU na Azure Kubernetes Service (AKS)

Uruchamianie obciążeń procesora GPU firmy NVIDIA na Azure Kubernetes Service (AKS) tradycyjnie wymaga zainstalowania i obsługi sterownika procesora GPU FIRMY NVIDIA, wtyczki urządzenia Kubernetes oraz eksportera metryk procesora GPU w każdym węźle procesora GPU. Te składniki umożliwiają planowanie procesora GPU, dostęp do procesora GPU na poziomie kontenera i dane telemetryczne, ale instalowanie ich ręcznie lub za pośrednictwem operatora procesora GPU firmy NVIDIA zwiększa obciążenie operacyjne.

Korzystając z w pełni zarządzanych węzłów GPU, usługa AKS instaluje i utrzymuje sterownik GPU firmy NVIDIA, wtyczkę urządzenia i eksporter metryk usługi Data Center GPU Manager (DCGM). Tworzenie puli węzłów GPU staje się jednym krokiem, a pojemność GPU funkcjonuje jak każda inna pula węzłów AKS. Możesz używać zarządzanych węzłów GPU z ręcznie utworzonymi pulami węzłów GPU oraz z automatycznym aprowizowaniem węzłów (NAP), w tym z klastrami AKS Automatic.

Zarządzana pula węzłów procesora GPU jest konfigurowana za pomocą dwóch pól w obszarze gpuProfile.nvidia:

  • managementMode (Managed lub Unmanaged) określa, czy usługa AKS instaluje pełny zarządzany stos procesora GPU (sterownik, wtyczkę urządzenia i eksporter metryk DCGM) czy tylko sterownik. Wartość domyślna to Unmanaged.
  • migStrategy (None, Single, lub Mixed) ustawia strategię Multi-Instance GPU (MIG) dla obsługiwanych SKU GPU, takich jak A100 i H100. Wartość domyślna to None.

W tym artykule konfigurujesz zarządzaną pulę węzłów GPU, opcjonalnie włączasz funkcję MIG, weryfikujesz stos i uruchamiasz przykładowe obciążenie GPU.

Zanim rozpoczniesz

Zarządzane składniki procesora GPU

Zarządzana pula węzłów procesora GPU może zawierać następujące składniki w każdym węźle:

Składnik Do czego służy Czym zarządza usługa AKS
Sterownik procesora GPU firmy NVIDIA Moduły jądra i biblioteki przestrzeni użytkownika, które pozwalają systemowi operacyjnemu i kontenerom komunikować się ze sprzętem procesora GPU. Wybór wersji sterownika, instalacja podczas aprowizacji węzła i ponowna instalacja po uaktualnieniu obrazu węzła.
Wtyczka urządzenia NVIDIA Kubernetes Odpowiednik DaemonSet, który ogłasza zasoby GPU (nvidia.com/gpu, nvidia.com/mig-*) do kubeletu, aby zasobniki mogły je zażądać. Wdrażanie, konfiguracja (w tym strategia MIG) i cykl życia na każdym węźle GPU.
Eksporter metryk NVIDIA DCGM i DCGM Menedżer procesora GPU centrum danych zbiera dane dotyczące kondycji i wykorzystania procesora GPU oraz uwidacznia metryki Prometheus (na przykład DCGM_FI_DEV_GPU_UTIL, DCGM_FI_DEV_GPU_TEMP) na porcie 19400. Instalacja, włączanie usługi i etykieta węzła kubernetes.azure.com/dcgm-exporter=enabled, której używa się do zbierania metryk.
Sygnały kondycji procesora GPU NPD wskazuje na warunki węzłów specyficzne dla procesorów GPU, takie jak UnhealthyNvidiaDevicePlugin i UnhealthyNvidiaDCGMServices. Monitorowanie i raportowanie stanu NPD na węzłach GPU.

Instalowanie profilów

Dwa gpuProfile pola decydują o tym, które z tych składników instaluje usługa AKS:

  • gpuProfile.driver (Install lub None): czy usługa AKS instaluje sterownik procesora GPU FIRMY NVIDIA.
  • gpuProfile.nvidia.managementMode (Managed lub Unmanaged): czy usługa AKS instaluje również stos procesora GPU platformy Kubernetes na górze sterownika.

Razem tworzą trzy profile instalacji:

Instalowanie profilu Flagi CLI Czym instaluje i zarządza AKS
Pełny zarządzalny stos --enable-managed-gpu=true (lub żadna flaga) Wszystkie cztery składniki powyżej: sterownik, wtyczka urządzenia, eksporter metryk DCGM i monitorowanie kondycji procesora GPU w usłudze NPD.
Tylko sterownik (wartość domyślna) --enable-managed-gpu=false Tylko sterownik procesora GPU firmy NVIDIA. Samodzielnie instalujesz wtyczkę urządzenia, eksportera metryk oraz monitorowanie zdrowia (na przykład za pomocą operatora GPU NVIDIA).
Brak (BYO) --enable-managed-gpu=false --gpu-driver None Nic. Usługa AKS nie instaluje żadnego z czterech komponentów. Jesteś właścicielem pełnego stosu. Zobacz Bring your own GPU driver (Przynieś własny sterownik procesora GPU).

Wartości domyślne i zastąpienia

  • Wartości domyślne: Jeśli nie przekażesz --enable-managed-gpu ani --gpu-driver, usługa AKS zastosuje profil Tylko sterownik w puli węzłów utworzonej przy użyciu maszyny wirtualnej z GPU marki NVIDIA.
  • Przesłonięcie: managementMode: Managed wymaga sterownika, więc --gpu-driver None jest pomijany, jeśli --enable-managed-gpu=true sterownik jest nadal zainstalowany. Aby pominąć sterownik, ustaw zarówno --enable-managed-gpu=false, jak i --gpu-driver None.
  • Niezmienność: managementMode, migStrategyi driver są stałe w czasie tworzenia. Aby zmienić profil, utwórz nową pulę węzłów.

Ograniczenia

  • Ta funkcja obsługuje obecnie tylko rozmiary maszyn wirtualnych z obsługą procesora GPU firmy NVIDIA .
  • Aktualizowanie puli węzłów ogólnego przeznaczenia w celu dodania rozmiaru maszyny wirtualnej procesora GPU nie jest obsługiwane w usłudze AKS.
  • Pule węzłów Windows nie są obsługiwane w tej funkcji, ponieważ metryki GPU nie są obsługiwane. Podczas tworzenia pul węzłów GPU w systemie Windows, usługa AKS automatycznie instaluje sterowniki i wtyczkę urządzenia DirectX oraz nimi zarządza. Aby uzyskać więcej informacji, zobacz dokumentację AKS Windows gpu.
  • Migrowanie istniejących pul węzłów wielo-instancjowego GPU do używania tej funkcji nie jest obsługiwane.
  • Aktualizacje w miejscu z istniejącej puli węzłów GPU NVIDIA do zarządzanej puli węzłów GPU nie są wspierane. Aby przeprowadzić migrację, odseparuj i opróżnij istniejące węzły GPU, a następnie ponownie wdroż obciążenia w nowej puli węzłów GPU utworzonej przy użyciu --enable-managed-gpu=true. Aby uzyskać więcej informacji, zobacz Zmienianie rozmiaru pul węzłów w usłudze AKS.
  • Pola managementMode, migStrategyi driver w obszarze gpuProfile są niezmienne po utworzeniu puli węzłów. Aby zmienić te wartości, utwórz nową pulę węzłów.

Uwaga / Notatka

Maszyny wirtualne z obsługą GPU zawierają wyspecjalizowany sprzęt, który wiąże się z wyższymi cenami i dostępnością w regionach. Aby uzyskać więcej informacji, zobacz narzędzie do ustalania cen i dostępność regionów .

Tworzenie puli węzłów GPU zarządzanej przez usługę AKS

Dodaj zarządzaną pulę węzłów GPU do istniejącego klastra AKS, przekazując --enable-managed-gpu=true do az aks nodepool add. Usługa AKS automatycznie ustawia gpuProfile.nvidia.managementMode do Managed i instaluje sterownik GPU, wtyczkę urządzenia oraz DCGM metrics exporter.

W przypadku klastrów AKS Automatic lub AKS Standard korzystających z NAP skonfiguruj zarządzany stos GPU na AKSNodeClass zamiast używać az aks nodepool add.

Aby użyć domyślnej jednostki SKU systemu operacyjnego Ubuntu, należy utworzyć pulę węzłów bez określania jednostki SKU systemu operacyjnego. Pula węzłów jest skonfigurowana dla domyślnego systemu operacyjnego na podstawie wersji rozwiązania Kubernetes klastra.

  1. Dodaj pulę węzłów do klastra przy użyciu az aks nodepool add polecenia z 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=true
    
  2. Upewnij się, że zarządzane składniki oprogramowania procesora GPU firmy NVIDIA zostały pomyślnie zainstalowane:

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

    Dane wyjściowe powinny zawierać następujące wartości:

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