Menggunakan kumpulan simpul Virtual Machines di Azure Kubernetes Service (AKS)

Dalam artikel ini, Anda akan mempelajari tentang jenis kumpulan simpul Komputer Virtual baru untuk AKS.

Dengan sekumpulan simpul Mesin Virtual, AKS secara langsung mengelola penyediaan dan bootstrapping setiap simpul. Untuk pool node Virtual Machine Scale Sets, AKS mengelola model dari Virtual Machine Scale Sets dan menggunakannya untuk mencapai konsistensi di seluruh node dalam pool node tersebut. Kumpulan simpul Virtual Machines memungkinkan Anda mengatur kluster dengan komputer virtual yang paling sesuai dengan beban kerja individual Anda.

Dengan menggunakan kumpulan node mesin virtual, AKS secara langsung mengelola penyediaan dan proses bootstrap setiap node. Untuk kumpulan simpul set skala komputer virtual, AKS mengelola model set skala komputer virtual dan menggunakannya untuk mencapai konsistensi di semua simpul di kumpulan simpul. Kumpulan simpul komputer virtual memungkinkan Anda mengatur kluster dengan komputer virtual yang paling sesuai dengan beban kerja individual Anda.

Gambaran umum kumpulan simpul komputer virtual

Cara kerjanya

Kumpulan simpul terdiri dari sekumpulan komputer virtual (VM), di mana ukuran komputer virtual yang berbeda mendukung berbagai jenis beban kerja. Ukuran komputer virtual ini, disebut sebagai SKU, dikategorikan ke dalam berbagai keluarga yang dioptimalkan untuk tujuan tertentu. Untuk informasi selengkapnya, lihat dokumentasi SKU VM. Dengan menggunakan kumpulan node mesin virtual, Anda dapat melakukan penskalaan manual multi-SKU dan penskalaan otomatis multi-SKU.

Untuk mengaktifkan penskalaan beberapa ukuran komputer virtual, jenis kumpulan simpul Komputer Virtual menggunakan ScaleProfile yang berisi konfigurasi yang menunjukkan bagaimana kumpulan simpul dapat menskalakan, khususnya daftar ukuran komputer virtual yang diinginkan dan jumlah setiap ukuran. ManualScaleProfile adalah profil skala yang menentukan satu ukuran komputer virtual yang diinginkan dan jumlah total jenis tersebut dalam kumpulan simpul. Hanya satu ukuran komputer virtual yang diizinkan dalam .ManualScaleProfile Anda perlu membuat ManualScaleProfile yang terpisah untuk setiap ukuran mesin virtual dalam kumpulan node Anda. Saat membuat kumpulan simpul Mesin Virtual baru, Anda menambahkan profil skala awal secara manual untuk ukuran mesin virtual menggunakan bidang vm-size dan menyertakan node-count. Anda juga dapat menambahkan lebih banyak profil skala manual dengan mengikuti instruksi untuk menambahkan profil skala manual.

Untuk mengaktifkan penskalaan beberapa ukuran komputer virtual, jenis kumpulan simpul komputer virtual menggunakan ScaleProfile yang berisi konfigurasi yang menunjukkan bagaimana kumpulan simpul dapat diskalakan, khususnya daftar ukuran komputer virtual yang diinginkan dan jumlah setiap ukuran. ManualScaleProfile adalah profil skala yang menentukan satu ukuran komputer virtual yang diinginkan dan jumlah total jenis tersebut dalam kumpulan simpul. ManualScaleProfile hanya mendukung satu ukuran mesin virtual. Anda perlu membuat ManualScaleProfile yang terpisah untuk setiap ukuran mesin virtual dalam kumpulan node Anda. Saat membuat node pool komputer virtual baru, tambahkan profil skala manual awal untuk ukuran mesin virtual dengan menggunakan bidang vm-size serta menyertakan node-count. Anda juga dapat menambahkan lebih banyak profil skala manual dengan mengikuti instruksi untuk menambahkan profil skala manual.

Pool node mesin virtual juga mendukung mode Auto, yang berarti bahwa pool node dapat menggunakan cluster autoscaler. Kumpulan simpul mesin virtual mendukung total hingga lima profil penskalaan di seluruh mode manual dan penskalaan otomatis. Setiap profil menentukan satu SKU VM keluarga yang sama. Masing-masing AutoScaleProfile dapat memiliki jumlah simpul minimum dan maksimumnya sendiri di kumpulan simpul.

Catatan

Saat membuat kumpulan simpul Virtual Machines baru, Anda dapat memiliki beberapa profil skala, dan Anda memerlukan setidaknya satu profil skala manual atau otomatis di kumpulan simpul Anda.

Keuntungan dari kumpulan simpul komputer virtual

Keuntungan dari jenis kumpulan simpul Komputer Virtual meliputi:

  • Fleksibilitas: Spesifikasi node dapat diperbarui untuk beradaptasi dengan beban kerja dan kebutuhan Anda saat ini.
  • Kontrol yang disempurnakan: Kontrol tingkat node tunggal memungkinkan menentukan dan mencampur node dari spesifikasi yang berbeda untuk menghilangkan batasan pada satu model dan meningkatkan konsistensi.
  • Efisiensi: Anda dapat mengurangi penggunaan simpul untuk kluster Anda, menyederhanakan persyaratan operasional Anda.

Kumpulan simpul komputer virtual mendukung hingga lima profil skala per kumpulan simpul, sehingga beban kerja dapat menggunakan beberapa SKU VM keluarga yang sama tanpa memerlukan kumpulan simpul terpisah untuk setiap SKU.

Membandingkan pengalaman penskalaan komputasi AKS

Tabel berikut menyoroti bagaimana kumpulan simpul Mesin Virtual dibandingkan dengan kumpulan simpul Standar Set Skala.

Jenis kumpulan simpul Kemampuan penskalakan dan manajemen simpul
Kumpulan simpul Komputer Virtual Anda dapat menambahkan, menghapus, atau memperbarui simpul di kumpulan simpul. Jenis komputer virtual dapat berupa komputer virtual dengan jenis keluarga yang sama (misalnya, seri D, Seri A, dan sebagainya). Kumpulan node Virtual Machines juga memungkinkan penskalaan manual maupun otomatis multi-versi.
Kumpulan simpul berbasis Set Skala Komputer Virtual Anda dapat menambahkan atau menghapus simpul dengan ukuran yang sama dan mengetikkan kumpulan simpul. Jika Anda menambahkan ukuran komputer virtual baru ke kluster, Anda perlu membuat kumpulan simpul baru.

Pengalaman penskalaan komputasi mana yang harus saya pilih di AKS?

Tergantung pada kebutuhan beban kerja Anda, ada beberapa pengalaman penskalaan komputasi yang perlu dipertimbangkan. Lihat kasus penggunaan untuk masing-masing:

  • Penyediaan node otomatis: paling cocok untuk penskalaan otomatis berbagai versi, serta pemilihan versi VM yang lebih cerdas dan fleksibel (termasuk beberapa keluarga versi VM).
  • Pool node Virtual Machines: paling cocok untuk penskalaan manual multiversi dan mendukung penskalaan otomatis multiversi. Memerlukan pemilihan versi tertentu hingga lima ukuran per kumpulan simpul.
  • Virtual Machine Scale Sets: mendukung penskalakan manual versi tunggal dan penskalakan otomatis versi tunggal. Membutuhkan pemilihan versi tertentu untuk satu ukuran pada setiap kumpulan node.

Batasan kumpulan node Mesin Virtual

  • Ukuran VM yang ditentukan dalam kumpulan harus berjenis yang sama. Misalnya, komputer virtual GPU dan non-GPU atau x86 dan ARM64 tidak dapat berada di kumpulan simpul yang sama.
  • InifiniBand tidak tersedia.
  • Rekam jepret kumpulan simpul tidak didukung.
  • Semua ukuran VM yang dipilih dalam kumpulan simpul harus berasal dari keluarga komputer virtual serupa. Misalnya, Anda tidak dapat mencampur jenis komputer virtual Seri N dengan jenis komputer virtual Seri D di kumpulan simpul yang sama.
  • Anda perlu memilih semua ukuran VM dalam kumpulan simpul yang mendukung penempatan disk OS ephemeral yang sama saat Anda menggunakan disk OS ephemeral. Karena DiffDiskPlacement merupakan nilai tingkat kumpulan tunggal, AKS tidak dapat mengekspresikan penempatan yang berbeda per ukuran VM dalam satu kumpulan simpul.
  • Kumpulan node Virtual Machines mendukung hingga lima profil penskalaan secara total per kumpulan node. Setiap profil manual atau skala otomatis menentukan satu ukuran VM dari keluarga VM yang sama.
  • Pool node Windows tidak didukung.
  • Zona availabilitas tidak didukung. Jika beban kerja Anda memerlukan ketahanan zona, gunakan kumpulan simpul Virtual Machine Scale Sets.

Kompatibilitas penempatan disk OS Ephemeral

Saat Anda menambahkan profil skala yang menggabungkan ukuran VM dengan penempatan disk OS sementara yang berbeda, operasi pembuatan atau pembaruan gagal dengan kesalahan InvalidParameter dan subkode EphemeralOSMixedPlacementNotSupported.

Gunakan salah satu opsi remediasi berikut:

  • Gunakan ukuran VM yang memiliki penempatan disk OS ephemeral yang sama.
  • Pisahkan ukuran VM menjadi kumpulan simpul terpisah sehingga setiap kumpulan memiliki satu penempatan.
  • Gunakan disk OS terkelola alih-alih disk OS ephemeral.

Menentukan penempatan sebelum Anda menambahkan profil skala

Sebelum Anda menambahkan ukuran VM ke node pool Virtual Machines, periksa kapabilitas SKU di wilayah target dan pastikan kompatibilitas penempatan disk OS sementara.

  1. Cantumkan ukuran VM kandidat dan periksa kemampuan utama:

    az vm list-skus \
        --location <region> \
        --size Standard_D \
        --resource-type virtualMachines \
        --query "[].{name:name, capabilities:capabilities[?name=='EphemeralOSDiskSupported' || name=='MaxResourceVolumeMB' || name=='NvmeDiskSizeInMiB']}" \
        --output json
    
  2. Konfirmasikan setiap ukuran VM yang dipilih mendukung disk OS sementara (EphemeralOSDiskSupported) dan mengidentifikasi di mana disk lokal tersedia (MaxResourceVolumeMB untuk disk sementara/sumber daya dan NvmeDiskSizeInMiB untuk NVMe).

  3. Kelompokkan ukuran VM agar setiap pool simpul Virtual Machines menggunakan satu penempatan kompatibel.

Misalnya, jika satu profil menggunakan Standard_D4ds_v5 (penempatan disk sementara/sumber daya) dan profil lain menggunakan Standard_D4ads_v6 (penempatan NVMe), pertahankan keduanya dalam pool node yang terpisah atau gunakan disk OS terkelola.

Penting

Perilaku preflight dan what-if Saat ini tidak ada API preflight khusus yang memvalidasi penempatan campuran disk OS ephemeral pada seluruh profil skala sebelum penerapan. az deployment group what-if (BAGAIMANA-jika ARM) tidak menjamin deteksi konflik kompatibilitas kumpulan simpul ini. Pemeriksaan otoritatif terjadi ketika AKS memproses permintaan buat atau perbarui dan mengembalikan EphemeralOSMixedPlacementNotSupported jika penempatan tidak kompatibel.

Prasyarat

  • Langganan Azure. Jika Anda tidak memilikinya, Anda dapat membuat akun gratis.
  • Azure CLI versi 2.85.0 atau yang lebih baru diinstal dan dikonfigurasi. Jalankan az --version untuk mencari tahu versinya. Untuk informasi selengkapnya tentang menginstal atau memutakhirkan Azure CLI, lihat Install Azure CLI.
  • Fitur ini memerlukan Kubernetes versi 1.27 atau lebih tinggi. Untuk meningkatkan versi Kubernetes, lihat Meningkatkan kluster AKS.

Penting

Persyaratan jaringan virtual kustom: Jika Anda menyebarkan kumpulan simpul Komputer Virtual ke jaringan virtual kustom, kluster harus menggunakan identitas terkelola yang ditetapkan pengguna dengan setidaknya izin Kontributor Jaringan pada subnet target. Tidak seperti kumpulan simpul Virtual Machine Scale Set, kumpulan simpul Komputer Virtual hanya mengandalkan identitas kluster untuk operasi gabungan subnet dan tidak menggunakan token pihak pertama. Kluster yang menggunakan identitas terkelola yang dikelola oleh sistem gagal dalam validasi preflight saat membuat atau memperbarui kumpulan node Mesin Virtual pada jaringan virtual kustom, mengembalikan kesalahan InvalidParameter. Untuk informasi selengkapnya tentang mengonfigurasi identitas terkelola yang ditetapkan pengguna untuk kluster Anda, lihat Menggunakan identitas terkelola di AKS.

Membuat kluster AKS dengan kumpulan simpul Komputer Virtual

Catatan

Hanya satu ukuran VM yang diizinkan dalam profil skala, dan batas maksimumnya adalah lima profil skala VM secara keseluruhan untuk kumpulan simpul Komputer Virtual.

Buat kluster AKS dengan kumpulan node Mesin Virtual menggunakan perintah az aks create dengan bendera yang disetel menggunakan --vm-set-type ke "VirtualMachines".

Contoh berikut membuat kluster bernama myAKSCluster dengan kumpulan simpul Virtual Machines yang berisi dua simpul:

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --vm-set-type "VirtualMachines" \
    --vm-sizes "Standard_D4s_v3" \
    --node-count 2

Membuat kluster AKS dengan kumpulan simpul Virtual Machines di jaringan virtual kustom

Saat Anda menyebarkan kumpulan simpul Virtual Machines ke jaringan virtual kustom, Anda harus membuat identitas terkelola yang ditetapkan pengguna dan memberinya izin Kontributor Jaringan pada subnet target sebelum Anda membuat kluster.

  1. Buat jaringan virtual dan subnet.

    az network vnet create \
        --resource-group myResourceGroup \
        --name myVnet \
        --address-prefixes 10.1.0.0/16 \
        --subnet-name mySubnet \
        --subnet-prefix 10.1.0.0/24
    
  2. Dapatkan ID sumber daya subnet.

    SUBNET_ID=$(az network vnet subnet show \
        --resource-group myResourceGroup \
        --vnet-name myVnet \
        --name mySubnet \
        --query id \
        --output tsv)
    
  3. Buat identitas terkelola yang ditetapkan oleh pengguna.

    az identity create \
        --name myAKSIdentity \
        --resource-group myResourceGroup
    
  4. Dapatkan ID utama dan ID sumber daya identitas terkelola.

    IDENTITY_PRINCIPAL_ID=$(az identity show \
        --name myAKSIdentity \
        --resource-group myResourceGroup \
        --query principalId \
        --output tsv)
    
    IDENTITY_RESOURCE_ID=$(az identity show \
        --name myAKSIdentity \
        --resource-group myResourceGroup \
        --query id \
        --output tsv)
    
  5. Tetapkan peran Kontributor Jaringan ke identitas terkelola pada subnet target.

    az role assignment create \
        --assignee $IDENTITY_PRINCIPAL_ID \
        --role "Network Contributor" \
        --scope $SUBNET_ID
    

    Diperlukan waktu hingga 60 menit untuk menyebarluaskan izin yang diberikan ke identitas terkelola kluster Anda.

  6. Verifikasi bahwa penetapan peran ada pada subnet target sebelum Anda membuat kluster.

    az role assignment list \
        --assignee $IDENTITY_PRINCIPAL_ID \
        --role "Network Contributor" \
        --scope $SUBNET_ID \
        --query "[].{Role:roleDefinitionName, Scope:scope}" \
        --output table
    

    Lanjutkan saat output menunjukkan peran Kontributor Jaringan di cakupan subnet target.

  7. Buat kluster AKS dengan kumpulan simpul Komputer Virtual di jaringan virtual kustom Anda.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --vm-set-type "VirtualMachines" \
        --vm-sizes "Standard_D4s_v3" \
        --node-count 2 \
        --vnet-subnet-id $SUBNET_ID \
        --assign-identity $IDENTITY_RESOURCE_ID
    

Menambahkan kumpulan simpul Komputer Virtual ke kluster yang ada

Tambahkan kumpulan simpul Mesin Virtual ke kluster yang ada menggunakan perintah az aks nodepool add dengan flag --vm-set-type disetel ke "VirtualMachines".

Contoh berikut menambahkan kumpulan simpul Komputer Virtual bernama myvmpool ke kluster myAKSCluster . Kumpulan simpul membuat ManualScaleProfile dengan --vm-sizes diatur ke Standard_D4s_v3 dan --node-count 3:

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --vm-set-type "VirtualMachines" \
    --vm-sizes "Standard_D4s_v3" \
    --node-count 3

Menambahkan profil skala manual ke kumpulan simpul

Tambahkan profil skala manual ke kumpulan node menggunakan az aks nodepool manual-scale add dengan parameter --vm-sizes diatur ke "Standard_D2s_v3" dan node-count yang diatur ke 2.

Contoh berikut menambahkan profil skala manual ke kumpulan simpul myvmpool di kluster myAKSCluster. Kumpulan simpul mencakup dua simpul dengan SKU VM dari Standard_D2s_v3:

az aks nodepool manual-scale add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --vm-sizes "Standard_D2s_v3" \
    --node-count 2

Memperbarui profil skala manual yang ada

Perbarui profil skala manual yang ada di kumpulan simpul menggunakan perintah az aks nodepool manual-scale update dengan pengaturan --vm-sizes ke "Standard_D2s_v3".

Catatan

--current-vm-sizes Gunakan parameter untuk menentukan ukuran kumpulan simpul yang ada yang ingin Anda perbarui. Anda dapat memperbarui --vm-sizes dan/atau --node-count. Saat menggunakan alat lain atau REST API, Anda perlu mengisi bidang agentPoolProfiles.virtualMachinesProfile.scale secara lengkap saat memperbarui profil skala kumpulan simpul.

Contoh berikut memperbarui profil skala manual kumpulan simpul myvmpool di kluster myAKSCluster. Perintah memperbarui jumlah simpul menjadi lima dan mengubah SKU VM dari Standard_D4s_v3 ke Standard_D8s_v3:

az aks nodepool manual-scale update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --current-vm-sizes "Standard_D4s_v3" \
    --vm-sizes "Standard_D8s_v3" \
    --node-count 5

Menghapus profil skala manual

Hapus profil skala manual yang ada menggunakan az aks nodepool manual-scale delete perintah .

Catatan

Parameter --current-vm-sizes menentukan ukuran kumpulan simpul yang ada yang akan dihapus. Saat menggunakan alat lain atau REST API untuk memperbarui profil skala kumpulan simpul, masukkan bidang agentPoolProfiles.virtualMachinesProfile.scale yang lengkap.

Contoh berikut menghapus profil skala manual untuk Standard_D8s_v3 SKU VM di kumpulan simpul myvmpool .

az aks nodepool manual-scale delete \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --current-vm-sizes "Standard_D8s_v3"

Penskala otomatis kluster dengan Kumpulan Simpul Virtual Machines

Kumpulan simpul Komputer Virtual mendukung autoscaler kluster. Dukungan ini memungkinkan penskalaan otomatis untuk kumpulan simpul ukuran VM yang sama dan beberapa kumpulan simpul ukuran VM. Anda dapat mengaktifkan fitur ini dengan menggunakan bendera --enable-cluster-autoscaler selama pembuatan kluster, sambil menambahkan kumpulan simpul baru, atau saat memperbarui kumpulan simpul manual yang ada.

Saat menggunakan autoscaler kluster dengan kumpulan simpul Komputer Virtual, perilakunya adalah sebagai berikut:

  • Peningkatan skala: autoscaler merespons tekanan pod yang tertunda, dan dapat meningkatkan jumlah simpul kumpulan simpul dengan beberapa ukuran VM di kumpulan simpul tersebut.
  • Menurunkan skala: penskala otomatis memilih simpul tertentu berdasarkan tingkat penggunaan simpul. Anda dapat mengonfigurasi scale-down-utilization-threshold untuk menentukan kapan penskalaan otomatis kluster memicu tindakan penskalaan. Lihat dokumentasi autoscaler kluster untuk informasi lebih lanjut tentang konfigurasi penskalaan otomatis.

Batasan

  • Fitur ini hanya tersedia di cloud publik.
  • Node GPU saat ini tidak didukung.

Buat kluster AKS dengan kumpulan node Komputer Virtual dan penskalaan otomatis kluster yang diaktifkan

  • Buat kluster AKS dengan kumpulan node menggunakan perintah az aks create dengan opsi --vm-set-type diatur ke "VirtualMachines" dan opsi --enable-cluster-autoscaler.

Contoh berikut membuat kluster bernama myAKSCluster dengan kumpulan simpul Virtual Machines yang menggunakan ukuran Standard_D4s_v3simpul , jumlah simpul minimum 2, dan jumlah simpul maksimum 5:

az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --vm-set-type "VirtualMachines" \
    --node-vm-size "Standard_D4s_v3" \
    --enable-cluster-autoscaler \
    --min-count 2 \
    --max-count 5

Menambahkan kumpulan simpul Virtual Machines dengan autoscaler kluster diaktifkan ke kluster yang ada

  • Buat kumpulan node Mesin Virtual menggunakan perintah az aks nodepool add dengan bendera --vm-set-type diatur ke "VirtualMachines" dan dengan bendera --enable-cluster-autoscaler.

Contoh berikut menambahkan kumpulan simpul Komputer Virtual myvmpool dengan autoscaler kluster diaktifkan ke kluster bernama myAKSCluster menggunakan ukuran komputer virtual "Standard_D4s_v3", dan jumlah simpul minimum 2 dan jumlah maks 5:

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --vm-set-type "VirtualMachines" \
    --node-vm-size "Standard_D4s_v3" \
    --enable-cluster-autoscaler \
    --min-count 2 \
    --max-count 5

Memperbarui pengaturan autoscaler kluster untuk kumpulan simpul Virtual Machines

Contoh berikut memperbarui pengaturan untuk kumpulan simpul Komputer Virtual myvmpool dalam kluster bernama myAKSCluster menggunakan ukuran komputer virtual "Standard_D4s_v3":

az aks nodepool auto-scale update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --current-node-vm-size "Standard_D4s_v3" \
    --min-count 3 \
    --max-count 7

Mengalihkan profil skala kumpulan simpul Virtual Machines dari mode manual ke skala otomatis

Contoh berikut memperbarui kumpulan simpul Virtual Machines myvmpool dalam kluster bernama myAKSCluster, mengonversi semua profil skala manual ke profil skala otomatis dengan jumlah simpul minimum dan maksimum yang sama:

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --enable-cluster-autoscaler \
    --min-count 2 \
    --max-count 5

Menonaktifkan autoscaler kluster dalam kumpulan simpul Virtual Machines

Anda dapat menonaktifkan cluster autoscaler, atau mengubah semua profil penskalaan dalam node pool mesin virtual dari mode Auto ke mode Manual.

Contoh berikut menonaktifkan autoscaler kluster untuk kumpulan simpul Virtual Machines myvmpool di kluster bernama myAKSCluster. Ini mengalihkan semua profil skala dari Auto mode ke Manual mode:

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myvmpool \
    --disable-cluster-autoscaler

Langkah berikutnya

Dalam artikel ini, Anda mempelajari cara menggunakan kumpulan simpul Komputer Virtual di AKS. Untuk mempelajari selengkapnya tentang kumpulan simpul di AKS, lihat Membuat kumpulan simpul.