Mengelola kumpulan node sistem di Azure Kubernetes Service (AKS)

Di Azure Kubernetes Service (AKS), simpul dengan konfigurasi yang sama dikelompokkan bersama ke dalam kumpulan simpul. Kumpulan node ini berisi komputer virtual dasar yang menjalankan aplikasi Anda. Kumpulan node sistem dan kumpulan node pengguna adalah dua mode kumpulan node yang berbeda untuk kluster AKS Anda. Kumpulan node sistem melayani tujuan utama hosting Pod sistem penting seperti CoreDNS dan metrics-server. Kumpulan simpul pengguna melayani tujuan utama hosting Pod aplikasi Anda. Namun, pod aplikasi dapat dijadwalkan pada kumpulan node sistem jika Anda hanya ingin memiliki satu kumpulan di kluster AKS Anda. Setiap kluster AKS harus berisi setidaknya satu kumpulan simpul sistem dengan setidaknya dua simpul.

Penting

Jika Anda menjalankan satu kumpulan simpul sistem untuk kluster AKS Anda di lingkungan produksi, kami sarankan Anda menggunakan setidaknya tiga sumpul untuk kumpulan simpul tersebut.

Artikel ini menjelaskan cara mengelola kumpulan simpul sistem di AKS. Untuk informasi tentang cara menggunakan beberapa kumpulan simpul, lihat menggunakan beberapa kumpulan simpul.

Sebelum Anda mulai

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

Batasan

Batasan berikut berlaku saat Anda membuat dan mengelola kluster AKS yang mendukung beberapa kumpulan node.

  • Lihat Kuota, pembatasan ukuran VM, dan ketersediaan wilayah di AKS.
  • Versi API 2020-03-01 atau lebih tinggi harus digunakan untuk mengatur mode kumpulan node. Kluster yang dibuat pada versi API yang lebih lama dari 2020-03-01 hanya berisi kumpulan node pengguna, tetapi dapat dimigrasikan untuk berisi kumpulan node sistem dengan mengikuti langkah-langkah memperbarui mode kumpulan.
  • Nama kumpulan simpul hanya boleh berisi karakter alfanumerik huruf kecil dan harus dimulai dengan huruf kecil. Untuk kumpulan node Linux, panjangnya harus antara 1 dan 12 karakter. Untuk kumpulan simpul Windows, panjangnya harus antara satu dan enam karakter.
  • Mode kumpulan node adalah properti yang diperlukan dan harus diatur secara eksplisit saat menggunakan templat ARM atau panggilan API langsung.

Kumpulan node sistem dan pengguna

Untuk kumpulan node sistem, AKS secara otomatis menetapkan label kubernetes.azure.com/mode: system ke nodenya. Hal ini menyebabkan AKS lebih memilih pod sistem penjadwalan pada kumpulan node yang berisi label ini. Label ini tidak mencegah Anda menjadwalkan pod aplikasi pada kumpulan simpul sistem. Namun, kami sarankan Anda mengisolasi pod sistem penting dari pod aplikasi Anda untuk mencegah pod aplikasi yang salah dikonfigurasi atau nakal menghapus pod sistem secara tidak sengaja.

Anda dapat menerapkan perilaku ini dengan membuat kumpulan node sistem khusus. Gunakan taint CriticalAddonsOnly=true:NoSchedule untuk mencegah pod aplikasi dijadwalkan pada kumpulan node sistem.

Kumpulan node sistem memiliki batasan berikut:

  • Kumpulan node sistem harus mendukung setidaknya 30 Pod sebagaimana dijelaskan di rumus nilai minimum dan maksimum untuk pod.
  • Sistem kumpulan OsType harus berupa Linux.
  • Kumpulan node pengguna OsType dapat berupa Linux atau Windows.
  • Kumpulan sistem harus berisi setidaknya dua simpul, dan kumpulan simpul pengguna mungkin berisi nol atau lebih simpul.
  • Kumpulan simpul sistem memerlukan SKU VM setidaknya 4 vCPU dan memori 4GB.
  • VM seri B tidak didukung untuk kumpulan simpul sistem.
  • Minimal tiga simpul 8 vCPU atau dua simpul setidaknya 16 vCPU direkomendasikan (misalnya, Standard_DS4_v2), terutama untuk kluster besar (Beberapa replika CoreDNS Pod, 3-4+ add-on, dll.).
  • Kumpulan node spot memerlukan kumpulan node pengguna.
  • Menambahkan kumpulan simpul sistem lain atau mengubah kumpulan simpul mana yang merupakan kumpulan simpul sistem tidak secara otomatis memindahkan pod sistem. Pod sistem dapat terus berjalan pada kumpulan simpul yang sama, bahkan jika Anda mengubahnya menjadi kumpulan simpul pengguna. Jika Anda menghapus atau menurunkan skala kumpulan simpul yang menjalankan pod sistem yang sebelumnya merupakan kumpulan simpul sistem, pod sistem tersebut disebarkan ulang dengan penjadwalan pilihan ke kumpulan simpul sistem baru.

Anda dapat melakukan operasi berikut dengan kumpulan node:

  • Buat kumpulan node sistem khusus (lebih suka penjadwalan Pod sistem ke kumpulan mode:system node)
  • Ubag kumpulan node sistem ke kumpulan node pengguna, asalkan Anda memiliki kumpulan node sistem lain untuk menggantikannya di kluster AKS.
  • Ubah kumpulan node pengguna menjadi kumpulan node sistem.
  • Hapus kumpulan node pengguna.
  • Anda dapat menghapus kumpulan simpul sistem, asalkan Anda memiliki kumpulan simpul sistem lain untuk menggantikannya di kluster AKS.
  • Kluster AKS mungkin memiliki beberapa kumpulan node sistem dan memerlukan setidaknya satu kumpulan node sistem.
  • Jika ingin mengubah berbagai pengaturan yang tidak dapat diubah pada kumpulan node yang ada, Anda dapat membuat kumpulan node baru untuk menggantikannya. Salah satu contohnya adalah menambahkan kumpulan node baru dengan pengaturan maxPods baru dan menghapus kumpulan node lama.
  • Gunakan afinitas node untuk mewajibkan atau lebih memilih simpul mana yang dapat dijadwalkan berdasarkan label node. Anda dapat mengatur ke , ke , dan values dari atau usersystem ke YAML Anda, menerapkan definisi ini menggunakan kubectl apply -f yourYAML.yaml.Inoperatorkubernetes.azure.comkey

Membuat kluster AKS baru dengan kumpulan node sistem

Saat Anda membuat kluster AKS baru, kumpulan simpul awal default ke mode jenis system. Ketika Anda membuat kumpulan node baru dengan az aks nodepool add, kumpulan node tersebut adalah kumpulan node pengguna kecuali Anda secara eksplisit menentukan parameter mode.

Contoh berikut ini menunjukkan cara membuat grup sumber daya bernamamyResourceGroupdi wilayah eastus.

az group create --name myResourceGroup --location eastus

Gunakan perintah az aks create untuk membuat kluster AKS. Contoh berikut membuat kluster bernama myAKSCluster dengan satu kumpulan sistem khusus yang berisi dua simpul. Untuk beban kerja produksi Anda, pastikan Anda menggunakan kumpulan simpul sistem dengan setidaknya tiga simpul. Operasi ini mungkin memerlukan waktu beberapa menit untuk selesai.

# Create a new AKS cluster with a single system pool
az aks create -g myResourceGroup --name myAKSCluster --node-count 2 --generate-ssh-keys

Menambahkan kumpulan node sistem khusus ke kluster AKS yang ada

Anda dapat menambahkan satu atau beberapa kumpulan node sistem ke kluster AKS yang ada. Sebaiknya jadwalkan Pod aplikasi pada kumpulan node pengguna, dan dedikasikan kumpulan node sistem hanya untuk pod sistem penting. Hal ini mencegah pod aplikasi nakal menghapus pod sistem secara tidak sengaja. Terapkan perilaku ini dengan CriticalAddonsOnly=true:NoScheduletaint untuk kumpulan node sistem Anda.

Perintah berikut menambahkan kumpulan node khusus dari sistem tipe mode dengan jumlah default tiga node.

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name systempool \
    --node-count 3 \
    --node-taints CriticalAddonsOnly=true:NoSchedule \
    --mode System

Menampilkan detail untuk kumpulan node Anda

Anda dapat memeriksa detail kumpulan node Anda dengan perintah berikut.

az aks nodepool show -g myResourceGroup --cluster-name myAKSCluster -n systempool

Mode tipe Sistem didefinisikan untuk kumpulan node sistem, dan mode tipe Pengguna didefinisikan untuk kumpulan node pengguna. Untuk kumpulan sistem, pastikan bahwa taint diatur ke CriticalAddonsOnly=true:NoSchedule, yang akan mencegah pod aplikasi agar tidak dijadwalkan pada kumpulan node ini.

{
  "agentPoolType": "VirtualMachineScaleSets",
  "availabilityZones": null,
  "count": 3,
  "enableAutoScaling": null,
  "enableNodePublicIp": false,
  "id": "/subscriptions/yourSubscriptionId/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/agentPools/systempool",
  "maxCount": null,
  "maxPods": 110,
  "minCount": null,
  "mode": "System",
  "name": "systempool",
  "nodeImageVersion": "AKSUbuntu-1604-2020.06.30",
  "nodeLabels": {},
  "nodeTaints": [
    "CriticalAddonsOnly=true:NoSchedule"
  ],
  "orchestratorVersion": "1.16.10",
  "osDiskSizeGb": 128,
  "osType": "Linux",
  "provisioningState": "Succeeded",
  "proximityPlacementGroupId": null,
  "resourceGroup": "myResourceGroup",
  "scaleSetEvictionPolicy": null,
  "scaleSetPriority": null,
  "spotMaxPrice": null,
  "tags": null,
  "type": "Microsoft.ContainerService/managedClusters/agentPools",
  "upgradeSettings": {
    "maxSurge": null
  },
  "vmSize": "Standard_DS2_v2",
  "vnetSubnetId": null
}

Memperbarui sistem kluster yang ada dan kumpulan node pengguna

Catatan

Versi API 2020-03-01 atau lebih tinggi harus digunakan untuk mengatur mode kumpulan node. Kluster yang dibuat pada versi API yang lebih lama dari 2020-03-01 hanya berisi kumpulan node pengguna sebagai hasilnya. Untuk menerima fungsionalitas dan manfaat kumpulan node sistem pada kluster yang lebih lama, perbarui mode kumpulan node yang ada dengan perintah berikut pada versi Cli Azure terbaru.

Anda dapat mengubah mode untuk kumpulan node sistem dan pengguna. Anda dapat mengubah kumpulan node sistem menjadi kumpulan pengguna hanya jika kumpulan node sistem lain sudah ada pada kluster AKS.

Perintah ini mengubah kumpulan node sistem menjadi kumpulan node pengguna.

az aks nodepool update -g myResourceGroup --cluster-name myAKSCluster -n mynodepool --mode user

Perintah ini mengubah kumpulan node pengguna menjadi kumpulan node sistem.

az aks nodepool update -g myResourceGroup --cluster-name myAKSCluster -n mynodepool --mode system

Menghapus kumpulan node sistem

Catatan

Untuk menggunakan kumpulan node sistem pada kluster AKS sebelum API versi 2020-03-02, tambahkan kumpulan node sistem baru, lalu hapus kumpulan node default asli.

Anda harus memiliki setidaknya dua kumpulan node sistem pada kluster AKS sebelum dapat menghapus salah satunya.

az aks nodepool delete -g myResourceGroup --cluster-name myAKSCluster -n mynodepool

Membersihkan sumber daya

Untuk menghapus kluster, gunakan perintah az group delete untuk menghapus grup sumber daya AKS:

az group delete --name myResourceGroup --yes --no-wait

Langkah berikutnya

Di artikel ini, Anda telah mempelajari cara membuat dan mengelola beberapa kumpulan node dalam kluster AKS. Untuk informasi tentang cara memulai dan menghentikan kumpulan simpul AKS, lihat memulai dan menghentikan kumpulan simpul AKS.