Membuat kumpulan simpul GPU yang dikelola sepenuhnya di Azure Kubernetes Service (AKS) (pratinjau)

Menjalankan beban kerja GPU NVIDIA pada Azure Kubernetes Service (AKS) secara tradisional mengharuskan Anda menginstal dan memelihara driver GPU NVIDIA, plugin perangkat Kubernetes, dan pengekspor metrik GPU pada setiap simpul GPU. Komponen-komponen ini memungkinkan penjadwalan GPU, akses GPU tingkat kontainer, dan telemetri, tetapi menginstalnya secara manual atau melalui Operator GPU NVIDIA menambahkan overhead operasional.

Dengan node GPU yang dikelola sepenuhnya (pratinjau), AKS akan menginstal dan memelihara driver GPU NVIDIA, plugin perangkat, serta pengekspor metrik Data Center GPU Manager (DCGM) untuk Anda. Pembuatan kumpulan simpul GPU menjadi satu langkah, dan kapasitas GPU berulah seperti kumpulan simpul AKS lainnya.

Anda mengonfigurasi kumpulan simpul GPU terkelola melalui dua bidang di bawah gpuProfile.nvidia:

  • managementMode (Managed atau Unmanaged) mengontrol apakah AKS menginstal tumpukan GPU terkelola penuh (driver, plugin perangkat, dan pengekspor metrik DCGM) atau driver saja. Defaultnya adalah Unmanaged.
  • migStrategy (None, Single, atau Mixed) menetapkan strategi GPU Multi-Instans (MIG) untuk SKU GPU yang didukung seperti A100 dan H100. Defaultnya adalah None.

Dalam artikel ini, Anda menyediakan kumpulan simpul GPU terkelola, secara opsional mengaktifkan MIG, memverifikasi tumpukan, dan menjalankan sampel beban kerja GPU.

Penting

Fitur pratinjau AKS tersedia atas dasar layanan mandiri dan pendaftaran sukarela. Pratinjau disediakan "apa adanya" dan "sebagaimana tersedia," dan pratinjau tersebut dikecualikan dari perjanjian tingkat layanan (SLA) serta garansi terbatas. Pratinjau AKS sebagian didukung oleh dukungan pelanggan berdasarkan upaya terbaik yang dapat dilakukan. Dengan demikian, fitur-fitur ini tidak dimaksudkan untuk penggunaan produksi. Untuk informasi lebih lanjut, lihat artikel dukungan berikut ini:

Sebelum Anda mulai

Komponen GPU terkelola

Kumpulan simpul GPU terkelola dapat menyertakan komponen berikut pada setiap simpul:

Komponen Apa fungsinya Apa yang dikelola AKS
Driver GPU NVIDIA Modul kernel dan pustaka ruang pengguna yang memungkinkan OS dan kontainer berbicara dengan perangkat keras GPU. Pemilihan versi driver, penginstalan pada provisi simpul, dan penginstalan ulang setelah peningkatan gambar simpul.
Plugin perangkat NVIDIA Kubernetes DaemonSet-equivalent yang menyediakan sumber daya GPU (nvidia.com/gpu, nvidia.com/mig-*) ke kubelet sehingga pod dapat memintanya. Penyebaran, konfigurasi (termasuk strategi MIG), dan siklus hidup pada setiap simpul GPU.
Pengekspor metrik NVIDIA DCGM dan DCGM Manajer GPU Pusat Data mengumpulkan data kesehatan dan pemanfaatan GPU dan mengekspos metrik Prometheus (misalnya, , DCGM_FI_DEV_GPU_UTILDCGM_FI_DEV_GPU_TEMP) pada port 19400. Penginstalan, aktivasi layanan, dan label node yang kubernetes.azure.com/dcgm-exporter=enabled digunakan untuk mengumpulkan metrik.
Sinyal kesehatan GPU NPD memberi sinyal yang memunculkan kondisi node khusus GPU seperti UnhealthyNvidiaDevicePlugin dan UnhealthyNvidiaDCGMServices. Pemantauan NPD dan pelaporan kondisi pada simpul GPU.

Pasang profil

Dua gpuProfile bidang memutuskan komponen mana yang diinstal AKS:

  • gpuProfile.driver (Install atau None): apakah AKS menginstal driver GPU NVIDIA.
  • gpuProfile.nvidia.managementMode (Managed atau Unmanaged): apakah AKS juga menginstal tumpukan GPU yang menghadap Kubernetes di atas driver.

Bersama-sama, mereka menghasilkan tiga profil instalasi:

Menginstal profil Bendera CLI Apa yang diinstal dan dikelola AKS
Stack yang sepenuhnya dikelola --enable-managed-gpu=true (atau tidak ada bendera) Keempat komponen di atas: driver, plugin perangkat, pengekspor metrik DCGM, dan pemantauan kesehatan GPU di NPD.
Driver saja (default) --enable-managed-gpu=false Driver NVIDIA GPU saja. Anda menginstal dan mengelola plugin perangkat keras, pengekspor metrik, dan pemantauan kondisi sendiri (misalnya, dengan Operator GPU NVIDIA).
Tidak ada (BYO) --enable-managed-gpu=false --gpu-driver None Tidak apa-apa. AKS tidak menginstal salah satu dari empat komponen. Anda menguasai full stack. Lihat Membawa driver GPU Anda sendiri.

Default dan penggantian

  • Defaults: Jika Anda tidak melewatkan --enable-managed-gpu atau --gpu-driver, AKS menerapkan profil Hanya Pengemudi pada kumpulan simpul yang dibuat dengan ukuran VM dengan GPU NVIDIA.
  • Ganti: managementMode: Managed memerlukan driver, jadi --gpu-driver None akan diabaikan jika --enable-managed-gpu=true dan driver masih terpasang. Untuk melewati driver, atur keduanya, --enable-managed-gpu=false dan --gpu-driver None.
  • Kekekalan: managementMode, migStrategy, dan driver semuanya diperbaiki pada waktu pembuatan. Untuk mengubah profil, buat kumpulan simpul baru.

aks-preview Menginstal ekstensi CLI

  1. Instal ekstensi CLI menggunakan perintah aks-preview. Diperlukan versi 19.0.0b29 atau yang lebih baru.

    az extension add --name aks-preview
    
  2. Perbarui ekstensi untuk memastikan Anda memiliki versi terbaru yang terinstal menggunakan az extension update perintah .

    az extension update --name aks-preview
    

Daftarkan ManagedGPUExperiencePreview penanda fitur

Daftarkan ManagedGPUExperiencePreview bendera fitur di langganan Anda menggunakan az feature register perintah .

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

Keterbatasan

  • Fitur ini saat ini hanya mendukung ukuran komputer virtual (VM) dengan dukungan GPU NVIDIA .
  • Memperbarui kumpulan simpul tujuan umum untuk menambahkan ukuran VM GPU tidak didukung di AKS.
  • Kumpulan simpul Windows tidak didukung dengan fitur ini, karena metrik GPU tidak didukung. Saat Anda membuat kumpulan simpul GPU Windows, AKS secara otomatis menginstal dan mengelola driver dan plugin perangkat DirectX. Untuk informasi selengkapnya, lihat dokumentasi GPU AKS Windows.
  • Memigrasikan kumpulan node GPU multi-instance yang ada ke fitur ini tidak dapat didukung.
  • Peningkatan di tempat dari kumpulan simpul GPU NVIDIA yang ada ke kumpulan simpul GPU terkelola tidak didukung. Untuk melakukan migrasi, isolasi dan kosongkan node GPU yang ada, lalu lakukan redeploy beban kerja Anda ke pool node GPU baru yang dibuat dengan --enable-managed-gpu=true. Untuk informasi selengkapnya, lihat Mengubah ukuran kumpulan simpul di AKS.
  • Bidang managementMode, migStrategy, dan driver di bawah gpuProfile tidak dapat diubah setelah pembuatan kumpulan simpul. Untuk mengubah nilai-nilai ini, buat kumpulan simpul baru.
  • Autoscaler kluster tidak didukung pada node pool GPU terkelola selama masa pratinjau. Skalakan pool ini secara manual.

Nota

VM dengan dukungan GPU berisi perangkat keras khusus yang tunduk pada harga dan ketersediaan wilayah yang lebih tinggi. Untuk informasi selengkapnya, lihat alat penentuan harga dan ketersediaan wilayah.

Membuat kumpulan simpul GPU yang dikelola AKS (pratinjau)

Tambahkan kumpulan simpul GPU terkelola ke kluster AKS yang ada dengan meneruskan --enable-managed-gpu=true ke az aks nodepool add. AKS mengatur gpuProfile.nvidia.managementMode ke Managed dan menginstal driver GPU, plugin perangkat, dan pengekspor metrik DCGM secara otomatis.

Untuk menggunakan SKU sistem operasi (OS) Ubuntu default, Anda membuat kumpulan simpul tanpa menentukan SKU OS. Pool node dikonfigurasi untuk sistem operasi default sesuai dengan versi Kubernetes dari kluster.

  1. Tambahkan kumpulan node ke kluster Anda menggunakan perintah az aks nodepool add dengan flag --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. Konfirmasikan bahwa komponen perangkat lunak GPU NVIDIA terkelola berhasil diinstal:

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

    Output Anda harus menyertakan nilai berikut:

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

Membuat kumpulan simpul GPU Multi-Instans (MIG) terkelola (pratinjau)

Untuk SKU GPU yang mendukung GPU Multi-Instansi (seperti A100 dan H100), konfigurasikan strategi MIG pada saat pembuatan kumpulan nodus dengan pengaturan --gpu-mig-strategy. Strategi ini mengontrol bagaimana partisi MIG diekspos ke Kubernetes:

  • Single: Semua instans MIG digabungkan di bawah sumber daya standar nvidia.com/gpu.
  • Mixed: Setiap profil MIG diekspos sebagai sumber daya terpisah, seperti nvidia.com/mig-1g.10gb.
  • None (default): MIG tidak dikonfigurasi.

Bidang migStrategy tidak dapat diubah setelah kumpulan simpul dibuat.

Untuk latar belakang partisi MIG, ukuran VM yang didukung, dan profil instans GPU, lihat Membuat kumpulan simpul GPU multi-instans di AKS dan GPU Multi-Instans NVIDIA.

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

Dengan konfigurasi ini, pod meminta sumber daya GPU menggunakan nama sumber daya standar nvidia.com/gpu .

Verifikasi kumpulan simpul GPU terkelola (pratinjau)

Setelah node pool siap, jalankan pemeriksaan berikut untuk mengonfirmasi bahwa stack terkelola penuh telah diinstal dan berfungsi dengan baik.

  1. Verifikasi kondisi simpul khusus GPU dari Node Problem Detector (NPD):

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

    Pada simpul GPU terkelola, kedua kondisi berikut harus menunjukkan False:

    Keadaan Status Alasan
    UnhealthyNvidiaDevicePlugin False HealthyNvidiaDevicePlugin
    UnhealthyNvidiaDCGMServices False HealthyNvidiaDCGMServices
  2. Verifikasi bahwa label GPU terkelola ada pada simpul:

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

    Output yang diharapkan: enabled.

  3. Verifikasi bahwa sumber daya GPU dicantumkan dalam sumber daya yang dapat dialokasikan dari node.

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

    Untuk kumpulan simpul non-MIG, output mencakup "nvidia.com/gpu": "1" (atau lebih, tergantung pada SKU). Untuk kumpulan simpul MIG Mixed , output mencakup sumber daya khusus MIG seperti "nvidia.com/mig-1g.10gb": "7".

  4. Jalankan sampel beban kerja untuk mengonfirmasi akses GPU dari dalam kontainer:

    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
    

    Lihat log pod untuk melihat nvidia-smi output yang menunjukkan perangkat GPU, versi driver, dan versi CUDA:

    kubectl logs managed-gpu-test
    

Menskalakan kumpulan simpul GPU terkelola (pratinjau)

Skalakan kumpulan simpul GPU terkelola secara manual dengan az aks nodepool scale. Node baru menginstal tumpukan GPU sepenuhnya terkelola.

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

Penting

Selama pratinjau, kumpulan simpul GPU terkelola tidak mendukung autoscaler kluster. Sesuaikan ukuran kumpulan ini secara manual.

Profil penginstalan alternatif

Jika profil Tumpukan terkelola penuh tidak cocok, AKS mendukung dua profil alternatif pada kumpulan simpul GPU.

Gunakan profil ini ketika Anda ingin AKS menginstal dan memelihara driver GPU NVIDIA, tetapi Anda berencana untuk menyebarkan plugin perangkat dan pengekspor metrik sendiri (misalnya, dengan Operator GPU NVIDIA). Atur --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

Dengan konfigurasi ini:

  • AKS menginstal dan mengelola driver GPU NVIDIA (gpuProfile.driver adalah Install).
  • AKS tidak menginstal plugin perangkat, pengekspor metrik DCGM, atau aturan kesehatan GPU. gpuProfile.nvidia adalah null.
  • Tidak ada nvidia.com/gpu sumber daya yang diiklankan sampai Anda menerapkan plugin perangkat.

Langkah selanjutnya