Menggunakan label di kluster Azure Kubernetes Service (AKS)
Jika memiliki beberapa kumpulan node, Anda mungkin ingin menambahkan label selama pembuatan kumpulan node. Label ini terlihat di Kubernetes untuk menangani aturan penjadwalan untuk node. Anda dapat menambahkan label ke kumpulan node kapan saja, dan label tersebut akan ditetapkan pada semua node di kumpulan node.
Dalam panduan cara ini, Anda akan mempelajari cara menggunakan label di kluster 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 menginstal atau memutakhirkan versi, lihat Menginstal Azure CLI.
Membuat kluster AKS dengan label
Untuk membuat kluster AKS dengan label, gunakan az aks create. Tentukan parameter --node-labels 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
Verifikasi bahwa label telah diatur dengan menjalankan kubectl get nodes --show-labels.
kubectl get nodes --show-labels | grep -e "costcenter=9000" -e "dept=IT"
Membuat kumpulan node dengan label
Untuk membuat kumpulan simpul dengan label, gunakan az aks nodepool add. Tentukan nama labelnp dan gunakan parameter --labels untuk menentukan dept=HR dan costcenter=5000 untuk label. Label harus berupa pasangan kunci/nilai dan memiliki sintaks yang valid
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 perintah az aks nodepool list menunjukkan bahwa labelnpMembuat simpul-simpul dengan nodeLabels yang ditentukan:
az aks nodepool list -g myResourceGroup --cluster-name myAKSCluster
```output
[
{
...
"count": 1,
...
"name": "labelnp",
"orchestratorVersion": "1.15.7",
...
"provisioningState": "Creating",
...
"nodeLabels": {
"costcenter": "5000",
"dept": "HR"
},
...
},
...
]
Verifikasi bahwa label telah diatur dengan menjalankan kubectl get nodes --show-labels.
kubectl get nodes --show-labels | grep -e "costcenter=5000" -e "dept=HR"
Memperbarui label pada kumpulan node yang ada
Untuk memperbarui label pada kumpulan node yang ada, gunakan az aks nodepool update. Memperbarui label pada kumpulan node yang ada akan 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
Verifikasi bahwa label telah diatur dengan menjalankan kubectl get nodes --show-labels.
kubectl get nodes --show-labels | grep -e "costcenter=6000" -e "dept=ACCT"
Label tidak tersedia
Label sistem yang dicadangkan
Sejak rilis AKS 19-08-2021, Azure Kubernetes Service (AKS) telah menghentikan kemampuan untuk membuat perubahan pada label yang dicadangkan AKS. Mencoba mengubah label ini akan menghasilkan pesan kesalahan.
Label berikut dicadangkan untuk digunakan oleh 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 di node 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 VM> | Standar_NC6 | 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 | Pengguna |
| 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?> | true | 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
Daftar prefiks berikut dicadangkan untuk digunakan oleh AKS dan tidak dapat digunakan untuk node mana pun.
- kubernetes.azure.com/
- kubernetes.io/
Untuk prefiks cadangan tambahan, lihat label terkenal, anotasi, dan taint Kubernetes.
Label yang tidak digunakan lagi
Label berikut direncanakan untuk dihentikan dengan dirilisnya Kubernetes v1.24. Pelanggan harus mengubah referensi label apa pun ke pengganti yang direkomendasikan.
| Label | Pengganti yang direkomendasikan | Pengelola |
|---|---|---|
| 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 tentang kapan label ini tidak lagi dipelihara.
Langkah berikutnya
Pelajari selengkapnya tentang label Kubernetes di dokumentasi label Kubernetes.