Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Grafik işleme birimleri (GPU' lar) genellikle grafikler ve görselleştirme iş yükleri gibi yoğun işlem gücü kullanan iş yükleri için kullanılır. AKS, hesaplama yoğun Kubernetes iş yüklerini çalıştırmak için GPU destekli Linux düğüm havuzlarını destekler.
Bu makale, yeni ve mevcut AKS kümelerinde zamanlanabilir GPU'larla düğüm sağlanmasına yardımcı olur.
Tip
AKS'nin NVIDIA sürücüsünü, cihaz eklentisini ve DCGM ölçümlerini sizin için yükleyip koruduğu tam olarak yönetilen bir deneyim için bkz. AKS tarafından yönetilen GPU düğümü havuzları (önizleme).
Önemli
Azure Kubernetes Service (AKS), 30 Kasım 2025'den itibaren Azure Linux 2.0 için güvenlik güncelleştirmelerini desteklemez veya sağlamaz. Azure Linux 2.0 düğüm görüntüsü 202512.06.0 sürümünde dondurulur. 31 Mart 2026'dan itibaren düğüm görüntüleri kaldırılacak ve düğüm havuzlarınızı ölçeklendiremeyeceksiniz. Düğüm havuzlarınızı desteklenen bir Kubernetes sürümüne yükselterek veya osSku AzureLinux3'e geçerek desteklenen bir Azure Linux sürümüne geçin. Daha fazla bilgi için Bkz. Kullanımdan Kaldırma GitHub sorunu ve Azure Güncelleştirmeleri kullanımdan kaldırma duyurusu. Duyurular ve güncelleştirmeler hakkında bilgi sahibi olmak için AKS sürüm notlarını izleyin.
Desteklenen GPU destekli VM'ler
Kullanılabilir GPU özellikli VM'leri görüntülemek için bkz. Azure'da GPU için iyileştirilmiş VM boyutları. Gpu VM boyutu desteklenen VM boyutları listemizde yoksa AKS gerekli GPU yazılım bileşenlerini yüklemez veya destek sağlamaz. AKS, otomatik GPU sürücüsü yüklemesini atladıktan sonra desteklenmeyen GPU VM boyutlarının kullanılmasına izin verir.
komutunu kullanarak az vm list-skus kullanılabilir ve desteklenen VM boyutlarını denetleyin.
az vm list-skus --location <your-location> --output table
AKS düğüm havuzları için, minimum Standard_NC6s_v3 boyutunu öneriyoruz. NVv4 serisi (AMD GPU'larına dayalı), AKS üzerinde desteklenmemektedir.
Uyarı
GPU özellikli VM'ler, daha yüksek fiyatlandırma ve bölge kullanılabilirliğine tabi özel donanımlar içerir. Daha fazla bilgi için fiyatlandırma aracı ve bölge kullanılabilirliği konularına bakın.
Sınırlamalar
- Azure üzerinde Linux GPU destekli bir node havuzu kullanıyorsanız, otomatik güvenlik yamaları uygulanmaz. Mevcut AKS API sürümünüze, düğüm işletim sistemi yükseltme kanalının varsayılan davranışını öğrenmek için bakın.
- AKS için Flatcar Container Linux, AKS üzerinde NVIDIA GPU ile desteklenmez.
- AKS için OS Guard ile Azure Linux, AKS üzerinde NVIDIA GPU ile desteklenmez.
Uyarı
AKS API sürüm 2023-06-01 veya üzeri için düğüm işletim sistemi yükseltmesi için varsayılan kanal NodeImage'dır. Önceki sürümler için varsayılan kanal Yok'dur. Daha fazla bilgi edinmek için bkz. otomatik yükseltme.
- Mevcut bir düğüm havuzunu, GPU VM boyutunu eklemek için güncellemek AKS üzerinde desteklenmemektedir.
Başlamadan önce
- Bu makale, mevcut bir AKS kümeniz olduğunu varsayar. Kümeniz yoksa Azure CLI, Azure PowerShell veya Azure portalını kullanarak bir küme oluşturun.
- Alanı ayarlamak için Azure CLI sürüm 2.72.2 veya üstünün yüklü olması gereklidir. Sürümü bulmak için
az --versionkomutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekiyorsa bkz. Azure CLI'yı yükleme. -
aks-previewAzure CLI uzantısı yüklüyse lütfen sürümü 18.0.0b2 veya sonraki bir sürüme güncelleştirin.
Kümeniz için kimlik bilgilerini alın
AKS kümeniz için kimlik bilgilerini az aks get-credentials komutunu kullanarak alın. Aşağıdaki örnek komut, myResourceGroup kaynak grubundaki myAKSCluster için kimlik bilgilerini alır:
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
NVIDIA GPU'ları kullanma seçenekleri
NVIDIA GPU'larının kullanılması Kubernetes için NVIDIA cihaz eklentisi, GPU sürücü yüklemesi ve daha fazlası gibi çeşitli NVIDIA yazılım bileşenlerinin yüklenmesini içerir.
Uyarı
Varsayılan olarak, Microsoft düğüm görüntüsü dağıtımının bir parçası olarak NVIDIA sürücülerinin sürümünü otomatik olarak korur ve AKS bunu destekler ve yönetir . NVIDIA sürücüleri varsayılan olarak GPU özellikli düğümlere yüklenirken cihaz eklentisini yüklemeniz gerekir.
NVIDIA cihaz eklentisi kurulumu
AKS üzerinde GPU'lar kullanılırken NVIDIA aygıt eklentisinin kurulması gereklidir. Bazı durumlarda, kurulum, NVIDIA GPU Operator kullanıldığında olduğu gibi otomatik olarak gerçekleştirilir. Alternatif olarak, NVIDIA cihaz eklentisini manuel olarak yükleyebilirsiniz.
NVIDIA aygıt eklentisini elle yükleyin
NVIDIA cihaz eklentisi için bir DaemonSet dağıtabilirsiniz; bu, her düğümde çalışarak GPU'lar için gerekli olan sürücüleri sağlayan bir pod çalıştırır. Bu, Azure Linux için GPU etkinleştirilmiş düğüm havuzları kullanıldığında önerilen yaklaşımdır.
Varsayılan OS SKU'sunu kullanmak için, bir OS SKU belirtmeden düğüm havuzunu oluşturun. Düğüm havuzu, kümenin Kubernetes sürümü temel alınarak varsayılan işletim sistemi için yapılandırılmıştır.
Kümenize bir düğüm havuzu eklemek için az aks nodepool add komutunu kullanın.
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
Bu komut, gpunp adında bir düğüm kümesini myAKSCluster içinde myResourceGroup grubuna ekler ve aşağıdaki düğüm kümesi ayarlarını yapılandırmak için parametreler kullanır.
-
--node-vm-size: Düğüm havuzundaki düğümün VM boyutunu Standard_NC6s_v3 olarak ayarlar. -
--node-taints: Düğüm havuzunda bir sku=gpu:NoSchedule lekesi belirtir. -
--enable-cluster-autoscaler: Küme otomatik ölçekleyiciyi etkinleştirir. -
--min-count: Küme otomatik ölçekleyicisini, düğüm havuzunda en az bir düğüm olacak şekilde yapılandırır. -
--max-count: Küme otomatik ölçekleyicisini, düğüm havuzunda en fazla üç düğüm olacak şekilde yapılandırır.
Uyarı
Yalnızca düğüm havuzları oluşturulurken, taints ve VM boyutları ayarlanabilir, ancak otomatik ölçekleyici ayarlarını istediğiniz zaman güncelleyebilirsiniz.
komutunu kullanarak
kubectl create namespacebir ad alanı oluşturun.kubectl create namespace gpu-resourcesnvidia-device-plugin-ds.yaml adlı bir dosya oluşturun ve Kubernetes için NVIDIA cihaz eklentisi projesi kapsamında sağlanan aşağıdaki YAML bildirimini yapıştırın:
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-pluginsDaemonSet'i oluşturun ve
kubectl applykomutunu kullanarak NVIDIA aygıt eklentisinin başarıyla oluşturulduğunu doğrulayın.kubectl apply -f nvidia-device-plugin-ds.yamlNVIDIA cihaz eklentisini başarıyla yüklediğinize göre, GPU'larınızın zamanlanabilir olup olmadığını denetleyebilirsiniz ve bir GPU iş yükü çalıştırabilirsiniz.
GPU sürücüsü yüklemesini atlama
NVIDIA sürücülerinin yüklemesini denetlemek veya NVIDIA GPU Operatörünü kullanmak istiyorsanız, varsayılan GPU sürücüsü yüklemesini atlayabilirsiniz. Microsoft, düğüm görüntüsü dağıtımı kapsamında NVIDIA sürücülerinin bakım ve uyumluluğunu desteklemez veya yönetmez .
Önemli
Azure Kubernetes Service (AKS), 14 Ağustos 2025 tarihinden itibaren düğüm havuzu etiketini desteklememektedir --skip-gpu-driver-install . Bu tarihten sonra, otomatik GPU sürücüsü yüklemesini atlamak için bu etiketi kullanarak GPU özellikli düğüm havuzları sağlayamazsınız.
--gpu-driver alanını none olarak ayarlayarak aynı davranışı elde edebilirsiniz. Bu kullanımdan kaldırma hakkında daha fazla bilgi için GitHub Kullanımdan Kaldırma Sorunu ve Azure Güncelleştirmeleri kullanımdan kaldırma duyurusu başlıklarına bakın. Duyurular ve güncelleştirmeler hakkında bilgi sahibi olmak için AKS sürüm notlarını izleyin.
az aks nodepool addkomutunu kullanarak bir düğüm havuzu oluşturun ve varsayılan GPU sürücüsü yüklemesini atlamak için--gpu-driveralanınınoneolarak ayarlayın.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 3Düğüm havuzu oluşturulurken
--gpu-driverAPI alanınınnoneolarak ayarlanması, otomatik GPU sürücüsü yüklemesini geçer. Mevcut düğümler değiştirilmez. Düğüm havuzunu önce sıfıra, sonra yeniden yükselterek değişikliğin etkili olmasını sağlayabilirsiniz.Hatayı
unrecognized arguments: --gpu-driver nonealırsanız Azure CLI sürümünü güncelleştirin. Daha fazla bilgi için Başlamadan önce bölümüne bakın.bu adımları izleyerek isteğe bağlı olarak NVIDIA GPU operatörünü yükleyebilirsiniz.
GPU'ların zamanlanabilir olduğunu doğrulayın.
Kümenizi oluşturduktan sonra GPU'ların Kubernetes'te zamanlanabilir olduğunu onaylayın.
Kümenizdeki düğümleri
kubectl get nodeskomutunu kullanarak listeleyin.kubectl get nodesÇıkışınız aşağıdaki örnek çıkışa benzer olmalıdır:
NAME STATUS ROLES AGE VERSION aks-gpunp-28993262-0 Ready agent 13m v1.20.7GPU'ların programlanabilir olduğunu
kubectl describe nodekomutunu kullanarak doğrulayın.kubectl describe node aks-gpunp-28993262-0Kapasite bölümünün altında GPU olarak
nvidia.com/gpu: 1listelenmelidir. Çıkışınız aşağıdaki daraltılmış örnek çıkışa benzer olmalıdır:Name: aks-gpunp-28993262-0 Roles: agent Labels: accelerator=nvidia [...] Capacity: [...] nvidia.com/gpu: 1 [...]
GPU destekli bir iş yükü çalıştırın
GPU'yu çalışırken görmek için, uygun kaynak isteği ile GPU etkinleştirilmiş bir iş yükü zamanlayabilirsiniz. Bu örnekte, MNIST veri seti üzerinde bir Tensorflow işi çalıştıracağız.
Bir dosya oluşturun ve şu YAML bildirimini yapıştırın: samples-tf-mnist-demo.yaml. Bu bildirim,
nvidia.com/gpu: 1kaynak sınırı içermektedir.Uyarı
Sürücülere çağrı yaparken "CUDA sürücü sürümü CUDA çalışma zamanı sürümü için yetersiz" gibi bir sürüm uyuşmazlığı hatası alırsanız NVIDIA sürücü matrisi uyumluluk grafiğini gözden geçirin.
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"kubectl applykomutunu kullanarak işi çalıştırın; bu komut manifest dosyasını ayrıştırır ve tanımlanan Kubernetes nesnelerini oluşturur.kubectl apply -f samples-tf-mnist-demo.yaml
GPU etkin iş yükünün durumunu görüntüle
İşin ilerleyişini,
kubectl get jobskomutunu--watchbayrağı ile kullanarak izleyin. Görüntüyü çekmek ve veri setini işlemek için birkaç dakika sürebilir.kubectl get jobs samples-tf-mnist-demo --watchTAMAMLANMALAR sütununda 1/1 gösterildiğinde, aşağıdaki örnek çıktıda gösterildiği gibi iş başarıyla tamamlanmıştır:
NAME COMPLETIONS DURATION AGE samples-tf-mnist-demo 0/1 3m29s 3m29s samples-tf-mnist-demo 1/1 3m10s 3m36skubectl --watchişlemini sonlandırmak için Ctrl-C tuşlarına basın.Pod'un adını
kubectl get podskomutunu kullanarak alın.kubectl get pods --selector app=samples-tf-mnist-demoGPU özellikli iş yükünün çıktısını
kubectl logskomutunu kullanarak görüntüleyin.kubectl logs samples-tf-mnist-demo-smnr6Aşağıdaki yapılandırılmış örnek pod günlüğü çıktısı, uygun GPU cihazı
Tesla K80'nin keşfedildiğini doğrular.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
Düğüm havuzunu yükseltme
Düğüm havuzlarınızı güncellemek veya yükseltme işlemi yapmak istediğinizde, her iki işlem için de --gpu-driver parametre olmadığını fark edebilirsiniz. parametresini geçirmeye çalışırsanız gibi unrecognized arguments: --gpu-driver none bir hatayla karşılaşabilirsiniz. Değer bu tür işlemlerden etkilenmediğinden parametresinde çağrı yapmanıza gerek yoktur.
Düğüm havuzunuzu ilk oluşturduğunuzda, hangi --gpu-driver parametresini bildirirseniz bildirin, bunlar yükseltme/güncelleştirme işlemlerinden etkilenmez. Düğüm havuzunuzu oluştururken --gpu-driver None seçip sürücülerin yüklenmesini istemiyorsanız, sürücüler daha sonraki güncellemelerde/yükseltmelerde yüklenmez.
Kaynakları temizle
Bu makalede oluşturduğunuz ilişkili Kubernetes nesnelerini kubectl delete job komutunu kullanarak kaldırın.
kubectl delete jobs samples-tf-mnist-demo
Sonraki Adımlar
- AKS'in NVIDIA sürücüsünü, aygıt eklentisini ve DCGM metrikleri dışa aktarıcısını yüklemesine ve bakımını yapmasına izin vermek için AKS tarafından yönetilen GPU düğümü havuzlarını (önizleme) deneyin.
- Apache Spark görevlerini çalıştırmak için, AKS üzerinde Apache Spark görevlerini çalıştırma bölümüne bakın.
- Kubernetes zamanlayıcısının özellikleri hakkında daha fazla bilgi için AKS'deki gelişmiş zamanlayıcı özellikleri için en iyi uygulamalar bölümüne bakın.
- Azure Kubernetes Hizmeti ve Azure Makine Öğrenimi hakkında daha fazla bilgi için bkz: