Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Grafické procesory (GPU) se často používají pro výpočetně náročné úlohy, jako jsou úlohy zaměřené na grafiku a vizualizaci. AKS podporuje uzlové fondy Linuxu s povolenou podporou GPU pro provoz výpočetně náročných Kubernetes pracovních zátěží.
Tento článek vám pomůže nastavit uzly se plánovatelnými GPU na nových a stávajících AKS clusterů.
Důležité
Od 30. listopadu 2025 už Azure Kubernetes Service (AKS) nepodporuje ani neposkytuje aktualizace zabezpečení pro Azure Linux 2.0. Image uzlu Azure Linux 2.0 je zafixována u verze 202512.06.0. Od 31. března 2026 se image uzlů odeberou a nebudete moct škálovat fondy uzlů. Přejděte na podporovanou verzi Azure Linuxu aktualizací poolů uzlů na podporovanou verzi Kubernetes nebo migrací na osSku AzureLinux3. Další informace najdete v tématu Problém s vyřazením z GitHubu a oznámení o vyřazení aktualizací Azure. Pokud chcete mít přehled o oznámeních a aktualizacích, postupujte podle poznámek k verzi AKS.
Podporované virtuální počítače s podporou GPU
Pokud chcete zobrazit dostupné virtuální počítače s podporou GPU, podívejte se na velikosti virtuálních počítačů optimalizovaných pro GPU v Azure. Pokud velikost virtuálního počítače GPU není v našem seznamu podporovaných velikostí virtuálních počítačů, AKS nenainstaluje potřebné softwarové komponenty GPU ani neposkytuje podporu. AKS umožňuje použití nepodporovaných velikostí virtuálních počítačů GPU po vynechání automatické instalace ovladače GPU.
Pomocí příkazu zkontrolujte dostupné a podporované velikosti virtuálních počítačů az vm list-skus .
az vm list-skus --location <your-location> --output table
Pro uzly AKS doporučujeme minimální velikost Standard_NC6s_v3. NVv4 série (založená na AMD GPU) není podporována na AKS.
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ů.
Omezení
- Pokud používáte uzlový fond s podporou GPU na systému Azure Linux, automatické bezpečnostní záplaty nejsou aplikovány. Odkazujte na svou aktuální verzi API AKS pro výchozí chování kanálu upgradu OS uzlu.
- Flatcar Container Linux pro AKS se nepodporuje s NVIDIA GPU v AKS.
- Azure Linux s OS Guard pro AKS nepodporuje NVIDIA GPU v AKS.
Poznámka:
Pro verzi AKS API 2023-06-01 nebo novější je výchozím kanálem pro upgrade OS uzlu NodeImage. Pro u předchozích verzí je výchozí kanál None. Pokud se chcete dozvědět více, podívejte se na auto-upgrade.
- Aktualizace existující skupiny uzlů za účelem přidání velikosti GPU VM není podporována v AKS.
Než začnete
- Tento článek předpokládá, že již máte existující AKS cluster. Pokud nemáte klastr, vytvořte si ho pomocí Azure CLI, Azure PowerShell nebo portálu Azure.
- K nastavení
--gpu-driverpole potřebujete azure CLI verze 2.72.2 nebo novější. Verzi zjistíte spuštěním příkazuaz --version. Pokud potřebujete instalovat nebo upgradovat, podívejte se na Install Azure CLI. - Pokud máte
aks-previewnainstalované rozšíření Azure CLI, aktualizujte prosím verzi na 18.0.0b2 nebo novější.
Získejte přihlašovací údaje pro váš klastr
Získejte přihlašovací údaje pro váš AKS cluster pomocí příkazu az aks get-credentials. Následující ukázkový příkaz načte přihlašovací údaje pro myAKSCluster ve skupině prostředků myResourceGroup :
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Možnosti použití GPU NVIDIA
Použití grafických procesorů NVIDIA zahrnuje instalaci různých softwarových komponent NVIDIA, jako je například modul plug-in zařízení NVIDIA pro Kubernetes, instalaci ovladače GPU a další.
Poznámka:
Microsoft ve výchozím nastavení automaticky udržuje verzi ovladačů NVIDIA jako součást nasazení image uzlu a AKS ji podporuje a spravuje . Zatímco ovladače NVIDIA jsou ve výchozím nastavení nainstalovány na uzlech podporujících GPU, musíte nainstalovat modul plug-in zařízení.
Instalace pluginu pro zařízení NVIDIA
Instalace modulu plug-in zařízení NVIDIA se vyžaduje při použití grafických procesorů v AKS. V některých případech je instalace provedena automaticky, například při použití NVIDIA GPU Operator. Případně můžete ručně nainstalovat plugin zařízení NVIDIA.
Ručně nainstalujte plugin zařízení NVIDIA
Můžete nasadit DaemonSet pro plugin zařízení NVIDIA, který spustí pod na každém uzlu, aby poskytl potřebné ovladače pro GPU. Jedná se o doporučený přístup při používání fondů uzlů s podporou GPU pro Azure Linux.
Pokud chcete použít výchozí skladovou položku operačního systému, 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.
Přidejte node pool do svého clusteru pomocí příkazu az aks nodepool add.
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-cluster-autoscaler \
--min-count 1 \
--max-count 3
Tento příkaz přidává fond uzlů s názvem gpunp do myAKSCluster ve skupině prostředků myResourceGroup a používá parametry k nastavení následujících konfigurací fondu uzlů:
-
--node-vm-size: Nastaví velikost virtuálního stroje pro uzel v uzlovém poolu na Standard_NC6s_v3. -
--node-taints: Určuje poškození sku=gpu:NoSchedule na poolu uzlů. -
--enable-cluster-autoscaler: Aktivuje automatické škálování clusteru. -
--min-count: Konfiguruje automatické škálování clusteru tak, aby v poolu uzlů udržovalo minimálně jeden uzel. -
--max-count: Nakonfiguruje automatické škálování clusteru tak, aby udržovalo maximálně tři uzly v poolu uzlů.
Poznámka:
Tainty a velikosti VM lze nastavit pro sady uzlů pouze během jejich vytváření, ale nastavení automatického škálovače můžete aktualizovat kdykoliv.
Vytvořte jmenný prostor pomocí příkazu
kubectl create namespace.kubectl create namespace gpu-resourcesVytvořte soubor s názvem nvidia-device-plugin-ds.yaml a vložte do něj následující YAML manifest, který je součástí projektu NVIDIA device plugin pro 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: labels: name: nvidia-device-plugin-ds spec: tolerations: - key: "sku" operator: "Equal" value: "gpu" effect: "NoSchedule" # 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. # See https://kubernetes.io/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/ priorityClassName: "system-node-critical" containers: - image: nvcr.io/nvidia/k8s-device-plugin:v0.18.0 name: nvidia-device-plugin-ctr env: - name: FAIL_ON_INIT_ERROR value: "false" 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-pluginsVytvořte DaemonSet a pomocí příkazu
kubectl applypotvrďte, že byl modul plugin zařízení NVIDIA úspěšně vytvořen.kubectl apply -f nvidia-device-plugin-ds.yamlNyní, když jste úspěšně nainstalovali plugin pro zařízení NVIDIA, můžete se přesvědčit, že vaše GPU jsou plánovatelná a spustit úlohu na GPU.
Přeskočit instalaci ovladače GPU
Pokud chcete řídit instalaci ovladačů NVIDIA nebo použít operátor NVIDIA GPU, můžete přeskočit výchozí instalaci ovladače GPU. Microsoft nepodporuje ani nespravuje údržbu a kompatibilitu ovladačů NVIDIA v rámci nasazení bitové kopie uzlu.
Důležité
Od 14. srpna 2025 už Azure Kubernetes Service (AKS) nepodporuje --skip-gpu-driver-install značku fondu uzlů. Po tomto datu nebudete moct pomocí této značky zřídit fondy uzlů s podporou GPU a obejít tak automatickou instalaci ovladače GPU. Stejného chování dosáhnete nastavením --gpu-driver pole na none. Další informace o tomto vyřazení najdete v problému vyřazení na GitHubu a oznámení o vyřazení z Azure Updates. Pokud chcete mít přehled o oznámeních a aktualizacích, postupujte podle poznámek k verzi AKS.
Vytvořte fond uzlů pomocí
az aks nodepool addpříkazu a nastavte pole--gpu-drivernanone, aby se přeskočila výchozí instalace ovladače GPU.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name gpunp \ --node-count 1 \ --gpu-driver none \ --node-vm-size Standard_NC6s_v3 \ --enable-cluster-autoscaler \ --min-count 1 \ --max-count 3--gpu-driverNastavení pole rozhraní API nanoneběhem vytváření fondu uzlů přeskočí automatickou instalaci ovladače GPU. Jakékoli stávající uzly se nezmění. Fond uzlů můžete škálovat na nulu a pak zálohovat, aby se změna projevila.Pokud se zobrazí chyba
unrecognized arguments: --gpu-driver none, aktualizujte verzi Azure CLI. Další informace najdete v tématu Než začnete.Podle těchto kroků můžete volitelně nainstalovat operátor NVIDIA GPU.
Potvrďte, že GPU jsou plánovatelné.
Po vytvoření clusteru ověřte, že se v Kubernetes dají schedovat gpu.
Vylistujte uzly ve vašem clusteru pomocí příkazu
kubectl get nodes.kubectl get nodesVaše výstupy by měly vypadat podobně jako následující příklad:
NAME STATUS ROLES AGE VERSION aks-gpunp-28993262-0 Ready agent 13m v1.20.7Potvrďte, že GPU lze naplánovat pomocí příkazu
kubectl describe node.kubectl describe node aks-gpunp-28993262-0V části Kapacita by gpu měl být uveden jako
nvidia.com/gpu: 1. Váš výstup by měl vypadat podobně jako následující zkrácený příkladový výstup:Name: aks-gpunp-28993262-0 Roles: agent Labels: accelerator=nvidia [...] Capacity: [...] nvidia.com/gpu: 1 [...]
Spusťte úlohu se zapnutou podporou GPU
Abyste viděli GPU v akci, můžete naplánovat úkol se zapnutým GPU pomocí příslušného požadavku na prostředky. V tomto příkladu spustíme úlohu Tensorflow na datové sadě MNIST.
Vytvořte soubor s názvem samples-tf-mnist-demo.yaml a vložte následující YAML manifest, který obsahuje limit zdrojů
nvidia.com/gpu: 1.Poznámka:
Pokud při volání ovladačů obdržíte chybu nesouladu verzí, například "verze ovladače CUDA je nedostatečná pro verzi CUDA runtime", zkontrolujte tabulku kompatibility ovladačů NVIDIA.
apiVersion: batch/v1 kind: Job metadata: labels: app: samples-tf-mnist-demo name: samples-tf-mnist-demo spec: template: metadata: labels: app: samples-tf-mnist-demo spec: containers: - name: samples-tf-mnist-demo image: mcr.microsoft.com/azuredocs/samples-tf-mnist-demo:gpu args: ["--max_steps", "500"] imagePullPolicy: IfNotPresent resources: limits: nvidia.com/gpu: 1 restartPolicy: OnFailure tolerations: - key: "sku" operator: "Equal" value: "gpu" effect: "NoSchedule"Spusťte úlohu pomocí příkazu
kubectl apply, který zpracovává soubor manifestu a vytváří definované objekty Kubernetes.kubectl apply -f samples-tf-mnist-demo.yaml
Zobrazit stav úlohy s podporou GPU
Sledujte průběh úlohy pomocí
kubectl get jobspříkazu s příznakem--watch. Může trvat několik minut, než se nejprve stáhne obraz a zpracuje dataset.kubectl get jobs samples-tf-mnist-demo --watchKdyž sloupec COMPLETIONS ukazuje 1/1, práce byla úspěšně dokončena, jak je vidět v následujícím příkladu výstupu:
NAME COMPLETIONS DURATION AGE samples-tf-mnist-demo 0/1 3m29s 3m29s samples-tf-mnist-demo 1/1 3m10s 3m36sUkončete proces
kubectl --watchpomocí Ctrl-C.Získejte název podu pomocí příkazu
kubectl get pods.kubectl get pods --selector app=samples-tf-mnist-demoPomocí příkazu zobrazte výstup úlohy
kubectl logss podporou GPU.kubectl logs samples-tf-mnist-demo-smnr6Následující zhuštěný příklad výstupu logů z podu potvrzuje, že byla objevena správná GPU zařízení,
Tesla K80.2019-05-16 16:08:31.258328: I tensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supports instructions that this TensorFlow binary was not compiled to use: SSE4.1 SSE4.2 AVX AVX2 FMA 2019-05-16 16:08:31.396846: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Found device 0 with properties: name: Tesla K80 major: 3 minor: 7 memoryClockRate(GHz): 0.8235 pciBusID: 2fd7:00:00.0 totalMemory: 11.17GiB freeMemory: 11.10GiB 2019-05-16 16:08:31.396886: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1120] Creating TensorFlow device (/device:GPU:0) -> (device: 0, name: Tesla K80, pci bus id: 2fd7:00:00.0, compute capability: 3.7) 2019-05-16 16:08:36.076962: I tensorflow/stream_executor/dso_loader.cc:139] successfully opened CUDA library libcupti.so.8.0 locally Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes. Extracting /tmp/tensorflow/input_data/train-images-idx3-ubyte.gz Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes. Extracting /tmp/tensorflow/input_data/train-labels-idx1-ubyte.gz Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes. Extracting /tmp/tensorflow/input_data/t10k-images-idx3-ubyte.gz Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes. Extracting /tmp/tensorflow/input_data/t10k-labels-idx1-ubyte.gz Accuracy at step 0: 0.1081 Accuracy at step 10: 0.7457 Accuracy at step 20: 0.8233 Accuracy at step 30: 0.8644 Accuracy at step 40: 0.8848 Accuracy at step 50: 0.8889 Accuracy at step 60: 0.8898 Accuracy at step 70: 0.8979 Accuracy at step 80: 0.9087 Accuracy at step 90: 0.9099 Adding run metadata for 99 Accuracy at step 100: 0.9125 Accuracy at step 110: 0.9184 Accuracy at step 120: 0.922 Accuracy at step 130: 0.9161 Accuracy at step 140: 0.9219 Accuracy at step 150: 0.9151 Accuracy at step 160: 0.9199 Accuracy at step 170: 0.9305 Accuracy at step 180: 0.9251 Accuracy at step 190: 0.9258 Adding run metadata for 199 [...] Adding run metadata for 499
Aktualizace fondu uzlů
Bez ohledu na to, jestli chcete aktualizovat nebo upgradovat fondy uzlů, můžete si všimnout, že pro žádnou operaci neexistuje žádný --gpu-driver parametr. Při pokusu o předání parametru může dojít k chybě unrecognized arguments: --gpu-driver none . Není nutné volat parametr, protože hodnota není ovlivněna žádnými těmito operacemi.
Když poprvé vytvoříte fond uzlů, jakýkoli parametr, pro --gpu-driver který deklarujete, nebude ovlivněn operacemi upgradu nebo aktualizace. Pokud nechcete, aby byly nainstalovány žádné ovladače, a při vytváření fondu uzlů je vybrána volba --gpu-driver None, ovladače nebudou nainstalovány při žádných následných aktualizacích či upgradem.
Vyčistěte zdroje
Odstraňte související objekty Kubernetes, které jste vytvořili v tomto článku, pomocí příkazu kubectl delete job.
kubectl delete jobs samples-tf-mnist-demo
Další kroky
- Pokud chcete spouštět úlohy Apache Sparku, přečtěte si téma Spouštění úloh Apache Sparku v AKS.
- Pro více informací o funkcích plánovače Kubernetes se podívejte na Nejlepší postupy pro pokročilé funkce plánovače v AKS.
- Pro více informací o službách Azure Kubernetes Service a Azure Machine Learning, navštivte: