Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Graficzne jednostki przetwarzania (GPU) są często używane do obciążeń intensywnie korzystających z obliczeń, takich jak obciążenia grafiki i wizualizacji. Usługa AKS obsługuje pule węzłów z obsługą akceleratorów GPU w systemach Windows i Linux w celu uruchamiania obciążeń Platformy Kubernetes o dużych wymaganiach obliczeniowych.
Ten artykuł pomaga w konfigurowaniu węzłów systemu Windows z planowalnymi jednostkami GPU w nowych i istniejących klastrach AKS (wersja zapoznawcza).
Obsługiwane maszyny wirtualne z obsługą procesora GPU
Aby wyświetlić obsługiwane maszyny wirtualne z obsługą procesora GPU, zobacz Rozmiary maszyn wirtualnych zoptymalizowanych pod kątem procesora GPU na platformie Azure. W przypadku pul węzłów usługi AKS zalecamy minimalny rozmiar Standard_NC6s_v3. Seria NVv4 (oparta na procesorach GPU AMD) nie jest obsługiwana w usłudze AKS.
Uwaga
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 cenowe i dostępność regionów.
Ograniczenia
- Aktualizowanie istniejącej puli węzłów systemu Windows w celu dodania procesora GPU nie jest obsługiwane.
- Nieobsługiwane na platformie Kubernetes w wersji 1.28 lub nowszej.
Zanim rozpoczniesz
- W tym artykule założono, że masz istniejący klaster AKS. Jeśli nie masz klastra, utwórz go przy użyciu interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell lub witryny Azure Portal.
- Aby używać pola
--gpu-driverza pomocą poleceniaaz aks nodepool add, musisz mieć zainstalowaną i skonfigurowaną wersję 2.72.2 lub nowszą Azure CLI. Uruchom polecenieaz --version, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure. - Jeśli masz zainstalowane rozszerzenie interfejsu
aks-previewwiersza polecenia platformy Azure, zaktualizuj wersję do wersji 18.0.0b2 lub nowszej.
Pobierz poświadczenia dla klastra
Pobierz poświadczenia dla klastra AKS za pomocą polecenia
az aks get-credentials. Następujące przykładowe polecenie pobiera poświadczenia dla grupy zasobów myAKSCluster w grupie zasobów myResourceGroup :az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Używanie procesora GPU systemu Windows z automatyczną instalacją sterowników
Korzystanie z procesorów GPU FIRMY NVIDIA obejmuje instalację różnych składników oprogramowania NVIDIA, takich jak wtyczka urządzenia DirectX dla platformy Kubernetes, instalacja sterownika procesora GPU i nie tylko. Podczas tworzenia puli węzłów systemu Windows z obsługiwaną maszyną wirtualną z obsługą procesora GPU te składniki i odpowiednie sterowniki NVIDIA CUDA lub GRID są instalowane. W przypadku rozmiarów maszyn wirtualnych z serii NC i ND instalowany jest sterownik CUDA. W przypadku rozmiarów maszyn wirtualnych serii NV sterownik GRID jest zainstalowany.
Ważne
Funkcje usługi AKS w wersji zapoznawczej są dostępne na zasadzie samoobsługi i dobrowolnego uczestnictwa. Wersje zapoznawcze są udostępniane w wersji "as is" i "jako dostępne" i są wykluczone z umów dotyczących poziomu usług i ograniczonej gwarancji. Wersje przedpremierowe usługi AKS są częściowo objęte pomocą techniczną dla klientów na zasadzie najlepszych starań. W związku z tym te funkcje nie są przeznaczone do użytku produkcyjnego. Aby uzyskać więcej informacji, zobacz następujące artykuły pomocy technicznej:
Zainstaluj rozszerzenie CLI platformy aks-preview Azure
Zarejestruj lub zaktualizuj rozszerzenie aks-preview przy użyciu polecenia
az extension addlubaz extension update.# Register the aks-preview extension az extension add --name aks-preview # Update the aks-preview extension az extension update --name aks-preview
Zarejestruj flagę WindowsGPUPreview funkcji
Zarejestruj flagę funkcji
WindowsGPUPreviewprzy użyciu poleceniaaz feature register.az feature register --namespace "Microsoft.ContainerService" --name "WindowsGPUPreview"Wyświetlenie stanu Zarejestrowane trwa kilka minut.
Sprawdź stan rejestracji przy użyciu
az feature showpolecenia .az feature show --namespace "Microsoft.ContainerService" --name "WindowsGPUPreview"Gdy stan będzie odzwierciedlał Zarejestrowano, odśwież rejestrację dostawcy zasobów Microsoft.ContainerService używając polecenia
az provider register.az provider register --namespace Microsoft.ContainerService
Tworzenie puli węzłów z obsługą procesora GPU systemu Windows (wersja zapoznawcza)
Aby utworzyć pulę węzłów z obsługą procesora GPU systemu Windows, należy użyć obsługiwanego rozmiaru maszyny wirtualnej z obsługą procesora GPU i określić wartość os-type jako Windows. Domyślny system Windows os-sku to Windows2022, ale wszystkie opcje systemu Windows os-sku są obsługiwane.
Utwórz pulę węzłów z obsługą procesora GPU systemu Windows przy użyciu
az aks nodepool addpolecenia .az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name gpunp \ --node-count 1 \ --os-type Windows \ --kubernetes-version 1.29.0 \ --node-vm-size Standard_NC6s_v3Sprawdź, czy Twoje GPU można harmonogramować.
Po potwierdzeniu, że karty graficzne można przydzielać do harmonogramu, możesz uruchomić obciążenie karty graficznej.
Określ typ sterownika procesora GPU (wersja zapoznawcza)
Domyślnie usługa AKS określa domyślny typ sterownika procesora GPU dla każdej obsługiwanej maszyny wirtualnej z obsługą procesora GPU. Ponieważ obciążenie i zgodność sterowników są ważne dla działających obciążeń procesora GPU, można określić typ sterownika dla węzła procesora GPU systemu Windows. Ta funkcja nie jest obsługiwana w przypadku pul węzłów procesora GPU systemu Linux.
Podczas tworzenia puli agentów systemu Windows z obsługą procesora GPU można określić typ sterownika procesora GPU przy użyciu flagi --driver-type .
Dostępne opcje:
- GRID: w przypadku aplikacji wymagających obsługi wirtualizacji.
- CUDA: zoptymalizowane pod kątem zadań obliczeniowych w obliczeniach naukowych i aplikacjach intensywnie korzystających z danych.
Uwaga
Po ustawieniu flagi --driver-type przyjmujesz odpowiedzialność za zapewnienie zgodności wybranego typu sterownika z określonym rozmiarem maszyny wirtualnej i konfiguracją puli węzłów. Podczas gdy usługa AKS próbuje zweryfikować zgodność, istnieją scenariusze, w których tworzenie puli węzłów może zakończyć się niepowodzeniem z powodu niezgodności między określonym typem sterownika a podstawową maszyną wirtualną lub sprzętem.
Aby utworzyć pulę węzłów z obsługą procesora GPU systemu Windows z określonym typem sterownika procesora GPU, użyj az aks nodepool add polecenia .
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name gpunp \
--node-count 1 \
--os-type Windows \
--kubernetes-version 1.29.0 \
--node-vm-size Standard_NC6s_v3 \
--driver-type GRID
Na przykład powyższe polecenie tworzy pulę węzłów z obsługą procesora GPU przy użyciu GRID typu sterownika procesora GPU. Wybranie tego typu sterownika zastępuje domyślny CUDA typ sterownika dla jednostek SKU maszyn wirtualnych serii NC.
Korzystanie z procesora GPU systemu Windows z ręczną instalacją sterowników
Podczas tworzenia puli węzłów systemu Windows z rozmiarami maszyn wirtualnych serii N (GPU firmy NVIDIA) w usłudze AKS sterownik procesora GPU i wtyczka urządzenia Kubernetes DirectX są instalowane automatycznie. Aby obejść tę automatyczną instalację, wykonaj następujące czynności:
-
Pomiń instalację sterownika procesora GPU , ustawiając konfigurację
--gpu-driver nonew czasie tworzenia puli węzłów. - Ręczna instalacja wtyczki urządzenia Kubernetes DirectX.
Pomiń instalację sterownika procesora GPU
Usługa AKS ma domyślnie włączoną automatyczną instalację sterownika procesora GPU. W niektórych przypadkach, takich jak instalowanie własnych sterowników, możesz pominąć instalację sterownika procesora GPU.
Uwaga
Pole interfejsu gpu-driver API jest sugerowaną alternatywą dla klientów, którzy wcześniej korzystali z tagu --skip-gpu-driver-install puli węzłów.
- Etykieta
--skip-gpu-driver-installdla puli węzłów w AKS zostanie wycofana 14 sierpnia 2025 r. Aby zachować istniejące zachowanie pomijania automatycznej instalacji sterownika GPU, uaktualnij pule węzłów do najnowszej wersji obrazu węzła i ustaw--gpu-driverpole nanone. Po 14 sierpnia 2025 r. nie będzie można aprowizować pul węzłów usługi AKS z obsługą GPU używając tagu--skip-gpu-driver-installpuli węzłów do obejścia tego domyślnego zachowania. Aby uzyskać więcej informacji, zobaczskip-gpu-driverwycofywanie tagu.
Utwórz pulę węzłów przy użyciu
az aks nodepool addi ustaw pole interfejsu API--gpu-drivernanone, aby pominąć automatyczną instalację sterowników GPU.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name gpunp \ --node-count 1 \ --os-type windows \ --os-sku windows2022 \ --gpu-driver none
Uwaga
Jeśli używany element --node-vm-size nie jest jeszcze dołączony do usługi AKS, nie możesz używać procesorów GPU, a --gpu-driver pole nie działa.
Ręczne instalowanie wtyczki urządzenia Kubernetes DirectX
Można wdrożyć DaemonSet dla wtyczki urządzenia Kubernetes DirectX, która uruchamia pod na każdym węźle, aby dostarczyć wymagane sterowniki dla procesorów GPU.
Dodaj pulę węzłów do klastra za pomocą polecenia
az aks nodepool add.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name gpunp \ --node-count 1 \ --os-type windows \ --os-sku windows2022
Tworzenie przestrzeni nazw i wdrażanie wtyczki urządzenia Kubernetes DirectX
Utwórz przestrzeń nazw przy użyciu
kubectl create namespacepolecenia .kubectl create namespace gpu-resourcesUtwórz plik o nazwie k8s-directx-device-plugin.yaml i wklej następujący manifest YAML podany w ramach wtyczki urządzenia NVIDIA dla projektu Kubernetes:
apiVersion: apps/v1 kind: DaemonSet metadata: name: nvidia-device-plugin-daemonset namespace: gpu-resources spec: selector: matchLabels: name: nvidia-device-plugin-ds updateStrategy: type: RollingUpdate template: metadata: # Mark this pod as a critical add-on; when enabled, the critical add-on scheduler # reserves resources for critical add-on pods so that they can be rescheduled after # a failure. This annotation works in tandem with the toleration below. annotations: scheduler.alpha.kubernetes.io/critical-pod: "" labels: name: nvidia-device-plugin-ds spec: tolerations: # Allow this pod to be rescheduled while the node is in "critical add-ons only" mode. # This, along with the annotation above marks this pod as a critical add-on. - key: CriticalAddonsOnly operator: Exists - key: nvidia.com/gpu operator: Exists effect: NoSchedule - key: "sku" operator: "Equal" value: "gpu" effect: "NoSchedule" containers: - image: mcr.microsoft.com/aks/aks-windows-gpu-device-plugin:0.0.17 name: nvidia-device-plugin-ctr securityContext: allowPrivilegeEscalation: false capabilities: drop: ["ALL"] volumeMounts: - name: device-plugin mountPath: /var/lib/kubelet/device-plugins volumes: - name: device-plugin hostPath: path: /var/lib/kubelet/device-pluginsUtwórz element DaemonSet i upewnij się, że wtyczka urządzenia NVIDIA została pomyślnie utworzona przy użyciu
kubectl applypolecenia .kubectl apply -f nvidia-device-plugin-ds.yamlTeraz po pomyślnym zainstalowaniu wtyczki NVIDIA możesz sprawdzić, czy GPU można przydzielić do zadań.
Upewnij się, że karty GPU można zaplanować
Po utworzeniu klastra upewnij się, że jednostki GPU można przyporządkować w platformie Kubernetes.
Wyświetl listę węzłów w klastrze przy użyciu
kubectl get nodespolecenia .kubectl get nodesDane wyjściowe powinny wyglądać podobnie do następujących przykładowych danych wyjściowych:
NAME STATUS ROLES AGE VERSION aks-gpunp-28993262-0 Ready agent 13m v1.20.7Upewnij się, że procesory GPU mogą być zaplanowane przy użyciu polecenia
kubectl describe node.kubectl describe node aks-gpunp-28993262-0W sekcji Pojemność procesor GPU powinien mieć wartość
microsoft.com/directx: 1. Dane wyjściowe powinny wyglądać podobnie do następujących skróconych przykładowych danych wyjściowych:Capacity: [...] microsoft.com.directx/gpu: 1 [...]
Czyszczenie zasobów
Usuń skojarzone obiekty Kubernetes utworzone w tym artykule przy użyciu
kubectl delete jobpolecenia .kubectl delete jobs windows-gpu-workload
Następne kroki
- Aby uruchomić zadania platformy Apache Spark, zobacz Uruchamianie zadań platformy Apache Spark w usłudze AKS.
- Aby uzyskać więcej informacji na temat funkcji harmonogramu Kubernetes, zobacz Najlepsze rozwiązania dotyczące zaawansowanych funkcji harmonogramu w usłudze AKS.
- Aby uzyskać więcej informacji na temat usług Azure Kubernetes Service i Azure Machine Learning, zobacz: