Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Anda mungkin ingin mengubah ukuran komputer virtual (VM) Anda untuk mengakomodasi peningkatan jumlah penyebaran atau untuk menjalankan beban kerja yang lebih besar. Mengubah ukuran instans AKS secara langsung tidak didukung saat menggunakan Virtual Machine Scale Sets di AKS, seperti yang diuraikan dalam kebijakan dukungan untuk AKS:
Simpul agen AKS muncul di portal Microsoft Azure sebagai sumber daya IaaS Azure biasa. Tetapi mesin virtual ini disebarkan ke grup sumber daya Azure kustom (biasanya diawali dengan MC_*). Anda tidak dapat membuat kustomisasi langsung ke simpul ini menggunakan API atau sumber daya IaaS. Setiap perubahan kustom yang tidak dilakukan melalui API AKS tidak akan bertahan melalui peningkatan, skala, pembaruan, atau boot ulang.
Dalam artikel ini, Anda mempelajari metode yang direkomendasikan untuk mengubah ukuran kumpulan simpul dengan membuat kumpulan simpul baru dengan ukuran SKU yang diinginkan, mengotori dan menguras simpul yang ada, lalu menghapus kumpulan simpul yang ada.
Penting
Metode ini khusus untuk kluster AKS berbasis Virtual Machine Scale Sets. Saat menggunakan kumpulan simpul berbasis Komputer Virtual, Anda dapat dengan mudah memperbarui ukuran VM di kumpulan simpul yang ada menggunakan satu perintah Azure CLI dan memiliki beberapa ukuran VM dalam kumpulan simpul yang sama. Untuk informasi selengkapnya, lihat dokumentasi kumpulan simpul Komputer Virtual.
Buat kumpulan node baru dengan SKU yang diinginkan
Catatan
Setiap kluster AKS harus berisi setidaknya satu kumpulan node sistem dengan setidaknya satu node. Dalam contoh ini, kita menggunakan --modeSystem untuk menambahkan kumpulan simpul sistem sebagai pengganti kumpulan simpul sistem yang ingin kita sesuaikan ukurannya. Anda dapat memperbarui mode kumpulan simpul kapan saja. Anda juga dapat menambahkan kumpulan simpul pengguna dengan mengatur --mode ke User.
Saat menyesuaikan ukuran, pastikan Anda mempertimbangkan semua kebutuhan beban kerja, seperti zona ketersediaan, dan Anda dapat mengonfigurasi kumpulan simpul VMSS dengan sesuai. Anda mungkin perlu mengubah perintah berikut agar paling sesuai dengan kebutuhan Anda. Untuk daftar lengkap opsi konfigurasi, lihat az aks nodepool add halaman referensi.
Buat kumpulan simpul baru menggunakan
az aks nodepool addperintah . Dalam contoh ini, kami membuat kumpulan simpul baru,mynodepool, dengan tiga simpul danStandard_DS3_v2SKU VM untuk menggantikan kumpulan simpul yang ada,nodepool1, yang memilikiStandard_DS2_v2SKU VM.az aks nodepool add \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name mynodepool \ --node-count 3 \ --node-vm-size Standard_DS3_v2 \ --mode System \ --no-waitDibutuhkan beberapa menit agar kumpulan simpul baru dibuat.
Dapatkan status kumpulan simpul baru menggunakan
kubectl get nodesperintah .kubectl get nodesOutput Anda harus menyerupai contoh output berikut, memperlihatkan kumpulan simpul
mynodepoolbaru dan kumpulannodepool1simpul yang ada :NAME STATUS ROLES AGE VERSION aks-mynodepool-98765432-vmss000000 Ready agent 23m v1.21.9 aks-mynodepool-98765432-vmss000001 Ready agent 23m v1.21.9 aks-mynodepool-98765432-vmss000002 Ready agent 23m v1.21.9 aks-nodepool1-12345678-vmss000000 Ready agent 10d v1.21.9 aks-nodepool1-12345678-vmss000001 Ready agent 10d v1.21.9 aks-nodepool1-12345678-vmss000002 Ready agent 10d v1.21.9
Membatasi node yang ada
Pengepungan menandai node tertentu sebagai tidak dapat dijadwalkan dan mencegah pod tambahan ditambahkan ke node.
Dapatkan nama simpul yang ingin Anda lakukan cordon menggunakan perintah
kubectl get nodes.kubectl get nodesOutput Anda harus menyerupai contoh output berikut, memperlihatkan simpul-simpul dalam kumpulan
nodepool1yang ingin Anda isolasi.NAME STATUS ROLES AGE VERSION aks-nodepool1-12345678-vmss000000 Ready agent 7d21h v1.21.9 aks-nodepool1-12345678-vmss000001 Ready agent 7d21h v1.21.9 aks-nodepool1-12345678-vmss000002 Ready agent 7d21h v1.21.9Cordon simpul-simpul yang ada menggunakan perintah
kubectl cordon, tentukan simpul yang diinginkan dalam daftar yang dipisahkan dengan spasi. Contohnya:kubectl cordon aks-nodepool1-12345678-vmss000000 aks-nodepool1-12345678-vmss000001 aks-nodepool1-12345678-vmss000002Output Anda harus menyerupai contoh output berikut, yang menunjukkan bahwa node tersebut diblokir:
node/aks-nodepool1-12345678-vmss000000 cordoned node/aks-nodepool1-12345678-vmss000001 cordoned node/aks-nodepool1-12345678-vmss000002 cordoned
Mengosongkan node yang ada
Penting
Agar berhasil mengosongkan node dan mengeluarkan pod yang sedang berjalan, pastikan bahwa PodDisruptionBudgets (PDB) memungkinkan setidaknya satu replika pod dipindahkan sekali. Jika tidak demikian, operasi pengosongan/pengusiran gagal. Untuk memeriksa hal ini, Anda dapat menjalankan kubectl get pdb -A dan memverifikasi ALLOWED DISRUPTIONS setidaknya 1 atau lebih tinggi.
Ketika Anda mengosongkan node, pod yang berjalan di atasnya dikeluarkan dan dibuat ulang pada node lain yang dapat dijadwalkan.
Mengeluarkan simpul yang ada menggunakan perintah
kubectl draindengan bendera--ignore-daemonsetsdan--delete-emptydir-data, menentukan simpul yang diinginkan dalam daftar yang dipisahkan dengan spasi. Contohnya:Penting
Penggunaan
--delete-emptydir-datadiperlukan untuk mengeluarkan pod yang dibuat oleh AKS, yaitucorednsdanmetrics-server. Jika Anda tidak menggunakan bendera ini, Anda mendapatkan kesalahan. Untuk informasi lebih lanjut, lihat dokumentasi tentang emptydir.kubectl drain aks-nodepool1-12345678-vmss000000 aks-nodepool1-12345678-vmss000001 aks-nodepool1-12345678-vmss000002 --ignore-daemonsets --delete-emptydir-dataSetelah operasi pengurasan selesai, semua pod (tidak termasuk pod yang dikontrol oleh set daemon) harus berjalan pada kumpulan simpul baru. Anda dapat memverifikasi ini menggunakan
kubectl get podsperintah .kubectl get pods -o wide -A
Memecahkan masalah pengusiran pod
Anda mungkin mengalami kesalahan berikut saat menguras simpul:
Error when evicting pods/[podname] -n [namespace] (will retry after 5s): Cannot evict pod as it would violate the pod's disruption budget.
Secara bawaan, kluster Anda memiliki anggaran gangguan pod yang dikelola AKS (seperti coredns-pdb atau konnectivity-agent) dengan MinAvailable dari 1. Misalnya, jika ada dua coredns pod yang berjalan, hanya satu pod yang dapat terganggu pada satu waktu. Meskipun salah satunya sedang dibuat ulang dan tidak tersedia, pod coredns lainnya tidak dapat dipindahkan karena anggaran gangguan pod. Masalah ini diselesaikan sendiri setelah pod coredns awal dijadwalkan dan mulai berjalan, memungkinkan agar pod kedua dapat dievakuasi dan dibuat ulang dengan baik.
Tip
Pertimbangkan untuk mengalihkan beban kerja pada node satu per satu untuk pengalaman migrasi yang lebih lancar dan untuk menghindari pembatasan. Untuk informasi selengkapnya, lihat:
Menghapus kumpulan node yang ada
Penting
Saat Anda menghapus kumpulan node, AKS tidak melakukan cordon dan drain. Untuk meminimalkan gangguan penjadwalan ulang pod yang saat ini berjalan pada kumpulan nodus yang ingin Anda hapus, lakukan cordon dan pengosongan pada semua nodus di kumpulan nodus sebelum menghapus.
Hapus kumpulan simpul asli menggunakan
az aks nodepool deleteperintah .az aks nodepool delete \ --resource-group myResourceGroup \ --cluster-name myAKSCluster \ --name nodepool1Verifikasi bahwa kluster AKS Anda hanya memiliki kumpulan simpul baru dengan aplikasi dan pod yang berjalan dengan benar menggunakan perintah
kubectl get nodes.kubectl get nodesOutput Anda harus menyerupai contoh output berikut, hanya menampilkan kumpulan simpul
mynodepoolbaru :NAME STATUS ROLES AGE VERSION aks-mynodepool-98765432-vmss000000 Ready agent 63m v1.21.9 aks-mynodepool-98765432-vmss000001 Ready agent 63m v1.21.9 aks-mynodepool-98765432-vmss000002 Ready agent 63m v1.21.9
Langkah berikutnya
Setelah mengubah ukuran kumpulan node dengan mengkarantina dan mengosongkan, pelajari lebih lanjut tentang menggunakan beberapa kumpulan node.