Menggunakan label di kluster Azure Kubernetes Service (AKS)

Jika memiliki beberapa kumpulan node, Anda mungkin ingin menambahkan label selama pembuatan kumpulan node. Label Kubernetes menangani aturan penjadwalan untuk simpul. Anda dapat menambahkan label ke kumpulan simpul kapan saja dan menerapkannya ke semua simpul di kumpulan simpul.

Dalam panduan cara ini, Anda mempelajari cara menggunakan label di kluster Azure Kubernetes Service (AKS).

Prasyarat

Anda memerlukan Azure CLI versi 2.2.0 atau yang lebih baru terpasang dan terkonfigurasi. Jalankan az --version untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI.

Membuat kluster AKS dengan label

  1. Buat kluster AKS dengan label menggunakan az aks create perintah dan tentukan --node-labels parameter untuk mengatur label Anda. Label harus berupa pasangan kunci/nilai dan memiliki sintaks yang valid.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-count 2 \
        --nodepool-labels dept=IT costcenter=9000
    
  2. Verifikasi bahwa label diatur menggunakan kubectl get nodes --show-labels perintah .

    kubectl get nodes --show-labels | grep -e "costcenter=9000" -e "dept=IT"
    

Membuat kumpulan node dengan label

  1. Buat kumpulan simpul dengan label menggunakan az aks nodepool add perintah dan tentukan nama untuk --name parameter dan label untuk --labels parameter . Label harus berupa pasangan kunci/nilai dan memiliki sintaks yang valid

    Contoh perintah berikut membuat kumpulan simpul bernama labelnp dengan label dept=HR dan costcenter=5000.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name labelnp \
        --node-count 1 \
        --labels dept=HR costcenter=5000 \
        --no-wait
    

    Contoh output berikut dari az aks nodepool list perintah menunjukkan kumpulan simpul labelnp adalah Membuat simpul dengan nodeLabels yang ditentukan:

    [
      {
        ...
        "count": 1,
        ...
        "name": "labelnp",
        "orchestratorVersion": "1.15.7",
        ...
        "provisioningState": "Creating",
        ...
        "nodeLabels":  {
          "costcenter": "5000",
          "dept": "HR"
        },
        ...
      },
     ...
    ]
    
  2. Verifikasi bahwa label diatur menggunakan kubectl get nodes --show-labels perintah .

    kubectl get nodes --show-labels | grep -e "costcenter=5000" -e "dept=HR"
    

Memperbarui label pada kumpulan node yang ada

  1. Perbarui label pada kumpulan simpul yang ada menggunakan az aks nodepool update perintah . Memperbarui label pada kumpulan simpul yang ada menimpa label lama dengan label baru. Label harus berupa pasangan kunci/nilai dan memiliki sintaks yang valid.

    az aks nodepool update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name labelnp \
        --labels dept=ACCT costcenter=6000 \
        --no-wait
    
  2. Verifikasi bahwa label diatur menggunakan kubectl get nodes --show-labels perintah .

    kubectl get nodes --show-labels | grep -e "costcenter=6000" -e "dept=ACCT"
    

Label tidak tersedia

Label sistem yang dicadangkan

Sejak rilis AKS 2021-08-19, AKS menghentikan kemampuan untuk membuat perubahan pada label yang dipesan AKS. Mencoba mengubah label ini menghasilkan pesan kesalahan.

Label berikut adalah label cadangan AKS. Penggunaan node virtual menentukan apakah label ini dapat menjadi fitur sistem yang didukung pada node virtual. Beberapa properti yang diubah fitur sistem ini tidak tersedia pada simpul virtual karena memerlukan modifikasi host.

Label Nilai Contoh/Opsi Penggunaan node virtual
kubernetes.azure.com/agentpool <nama kumpulan agen> nodepool1 Sama
kubernetes.io/arch amd64 runtime.GOARCH T/A
kubernetes.io/os <Jenis OS> Linux/Windows Sama
node.kubernetes.io/instance-type <Ukuran komputer virtual> Standard_NC6s_v3 Virtual
topology.kubernetes.io/region <Wilayah Azure> westus2 Sama
topology.kubernetes.io/zone <Zona Azure> 0 Sama
kubernetes.azure.com/cluster <MC_RgName> MC_aks_myAKSCluster_westus2 Sama
kubernetes.azure.com/mode <mode> Pengguna atau sistem User
kubernetes.azure.com/role agen Agen Sama
kubernetes.azure.com/scalesetpriority <Prioritas VMSS> Spot atau biasa T/A
kubernetes.io/hostname <nama host> aks-nodepool-00000000-vmss000000 Sama
kubernetes.azure.com/storageprofile <Profil penyimpanan disk OS> Terkelola T/A
kubernetes.azure.com/storagetier <Tingkat penyimpanan disk OS> Premium_LRS T/A
kubernetes.azure.com/instance-sku <Keluarga SKU> Standard_N Virtual
kubernetes.azure.com/node-image-version <Versi VHD> AKSUbuntu-1804-2020.03.05 Versi node virtual
kubernetes.azure.com/subnet <nama subnet nodepool> subnetName Nama subnet node virtual
kubernetes.azure.com/vnet <nama vnet nodepool> vnetName Jaringan virtual node virtual
kubernetes.azure.com/ppg <nama ppg nodepool> ppgName T/A
kubernetes.azure.com/encrypted-set <nama kumpulan terenkripsi nodepool> encrypted-set-name T/A
kubernetes.azure.com/accelerator <akselerator> nvidia T/A
kubernetes.azure.com/fips_enabled <apakah fips diaktifkan?> benar T/A
kubernetes.azure.com/os-sku <os/sku> Membuat atau memperbarui SKU OS Linux
  • Same disertakan di tempat dengan nilai yang diharapkan untuk label tidak berbeda antara kumpulan node standar dan kumpulan node virtual. Karena pod node virtual tidak memperlihatkan mesin virtual (VM) yang mendasari, nilai SKU Mesin Virtual diganti dengan Virtual SKU.
  • Versi node virtual mengacu pada versi saat ini dari rilis konektor Kubelet-ACI virtual.
  • Nama subnet node virtual adalah nama subnet tempat pod node virtual disebarkan ke Azure Container Instance (ACI).
  • Jaringan virtual node virtual adalah nama jaringan virtual, yang berisi subnet tempat pod node virtual disebarkan di ACI.

Prefiks yang dicadangkan

Awalan berikut adalah awalan cadangan AKS dan tidak dapat digunakan untuk simpul apa pun:

  • kubernetes.azure.com/
  • kubernetes.io/

Untuk informasi selengkapnya tentang awalan yang dipesan, lihat label, anotasi, dan taint terkenal Kubernetes.

Label yang tidak digunakan lagi

Label berikut direncanakan untuk dihentikan dengan dirilisnya Kubernetes v1.24. Anda harus mengubah referensi label apa pun ke pengganti yang direkomendasikan.

Label Pengganti yang direkomendasikan Pemeliharaan
failure-domain.beta.kubernetes.io/region topology.kubernetes.io/region Kubernetes
failure-domain.beta.kubernetes.io/zone topology.kubernetes.io/zone Kubernetes
beta.kubernetes.io/arch kubernetes.io/arch Kubernetes
beta.kubernetes.io/instance-type node.kubernetes.io/instance-type Kubernetes
beta.kubernetes.io/os kubernetes.io/os Kubernetes
node-role.kubernetes.io/agent* kubernetes.azure.com/role=agent Azure Kubernetes Service
kubernetes.io/role* kubernetes.azure.com/role=agent Azure Kubernetes Service
Agentpool* kubernetes.azure.com/agentpool Azure Kubernetes Service
Storageprofile* kubernetes.azure.com/storageprofile Azure Kubernetes Service
Storagetier* kubernetes.azure.com/storagetier Azure Kubernetes Service
Accelerator* kubernetes.azure.com/accelerator Azure Kubernetes Service

*Baru dihentikan. Untuk informasi selengkapnya, lihat Catatan Rilis.

Langkah berikutnya

Pelajari lebih lanjut label Kubernetes dalam dokumentasi label Kubernetes.