Memperbarui node pool
Topik ini menjelaskan cara memperbarui node pool Anda. Anda dapat memperbarui kumpulan node karena alasan berikut:
- Untuk mengupgrade versi node pool Anda
- Untuk mengubah jumlah node di node pool
- Untuk mengubah anotasi kumpulan node (Hanya dapat diupdate melalui API)
Anda juga dapat mengubah parameter tambahan pada kumpulan node yang tidak tercantum di atas.
Untuk mengetahui daftar lengkap parameter yang dapat Anda perbarui, lihat dokumentasi
gcloud container azure node-pools update
dan
projects.locations.azureNodePools.patch
.
Proses pembaruan
Bagian ini menjelaskan proses yang dilakukan GKE di Azure untuk mengupdate kumpulan node. Prosesnya berbeda-beda, bergantung pada tingkat perubahan yang diperlukan pada kumpulan node.
Update khusus konfigurasi
Jika GKE di Azure dapat mengupdate node pool tanpa memulai ulang atau membuat ulang resource apa pun, GKE akan membuat perubahan tersebut. Misalnya, memperbarui anotasi node pool tidak akan memulai ulang instance apa pun.
Update berkelanjutan
Saat perubahan pada node pool memerlukan memulai ulang mesin virtual yang ada—misalnya, saat mengupdate versi Kubernetes—GKE di Azure melakukan langkah-langkah berikut:
- Ubah set skala virtual machine node pool dengan konfigurasi baru.
- Pilih instance pokok satu node yang akan diupdate.
- GKE di Azure menutup akses dan menguras node. Pada tahap ini, Pod baru tidak dapat dijadwalkan di node target. Objek Pod yang ada di node target dijadwalkan ulang ke node lain. Pod yang tidak dapat dijadwalkan ulang ke node lain yang sudah ada akan tetap berada dalam fase Tertunda hingga dapat dijadwalkan.
- Perbarui instance untuk mengambil konfigurasi terbaru dari set skala virtual machine-nya.
- Lakukan penginstalan ulang dan mulai ulang instance.
- Tunggu hingga semua node di node pool ini menjadi responsif.
- Jika semua node di kumpulan node ini dalam kondisi baik, pilih node lain hingga semua node diperbarui. Jika ada node yang tidak responsif, GKE di Azure akan menempatkan node pool ke dalam status
DEGRADED
. Untuk mengetahui informasi selengkapnya, lihat Update yang gagal.
Melindungi workload selama update berkelanjutan node pool
Selama update berkelanjutan node pool, GKE di Azure mematuhi konfigurasi PodDisruptionBudget
hingga satu jam setelah node mulai dikuras. Setelah satu jam, GKE di Azure akan menghapus Pod yang tersisa di node.
Mengubah ukuran node pool
Node pool GKE di Azure mengaktifkan penskalaan otomatis cluster secara default. Autoscaler cluster secara otomatis mengubah ukuran node pool berdasarkan permintaan workload Anda. Untuk mengetahui informasi selengkapnya tentang autoscaler cluster, lihat Autoscaler cluster.
Saat Anda mengubah jumlah maksimum dan minimum node di node pool, GKE di Azure akan melakukan tindakan yang berbeda-beda, bergantung pada konfigurasi baru dan jumlah node saat ini di node pool. Tindakan ini mencakup hal-hal berikut:
Jika jumlah node saat ini dalam rentang baru, GKE di Azure tidak akan mengubah jumlah node dalam pool.
Jika jumlah minimum node baru lebih tinggi daripada jumlah node saat ini di node pool, GKE di Azure akan menambahkan lebih banyak node hingga node pool mencapai ukuran minimum baru.
Jika jumlah maksimum node baru kurang dari jumlah node saat ini di node pool, GKE di Azure akan mengurangi ukuran node pool dengan melakukan tindakan berikut:
- Perbarui konfigurasi penskalaan otomatis pada set skala virtual machine di kumpulan node
- Pilih node yang akan dihapus
- Menghalangi dan mengosongkan node
- Menghapus instance virtual machine yang mendasarinya
- Tunggu hingga mesin virtual yang dihapus benar-benar hilang
- Melakukan health check pada seluruh node pool
- Ulangi hingga jumlah node mencapai jumlah yang diinginkan
Cara GKE on Azure melindungi beban kerja selama pengubahan ukuran node pool
Selama pengubahan ukuran node pool, GKE di Azure mematuhi konfigurasi PodDisruptionBudget hingga satu jam setelah node mulai dikuras. Setelah satu jam, GKE di Azure akan menghapus semua objek Pod yang tersisa di node.
Selama pengubahan ukuran node pool, GKE di Azure melakukan penonaktifan yang benar pada setiap node yang akan dimulai ulang atau dihapus dan menunggu hingga dua jam. Setelah dua jam, jika masih ada objek Pod yang tersisa di node, GKE di Azure akan menghapus instance virtual machine yang mendasarinya.
Memeriksa status update yang gagal
Jika GKE di Azure melakukan health check setelah update dan health check gagal, kumpulan node akan ditandai sebagai DEGRADED
. Anda dapat menemukan informasi status cluster dengan perintah Google Cloud CLI berikut:
gcloud container azure node-pools describe NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION
Ganti kode berikut:
NODE_POOL_NAME
: nama node pool AndaCLUSTER_NAME
: nama cluster AndaGOOGLE_CLOUD_LOCATION
: Google Cloud region yang mengelola cluster Anda
Output mencakup informasi tentang status dan konfigurasi kumpulan node Anda.
Prasyarat
Untuk memperbarui kumpulan node, Anda harus memiliki izin Identity and Access Management gkemulticloud.googleapis.com/azureNodePools.update
.
Memperbarui node pool
Anda dapat mengupdate node pool dengan Google Cloud CLI. Untuk mengupdate node pool, jalankan:
gcloud container azure node-pools update NODE_POOL_NAME \
--cluster CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION \
--node-version NODE_POOL_VERSION \
--min-nodes MIN_NODES \
--max-nodes MAX_NODES
Ganti kode berikut:
NODE_POOL_NAME
: nama node pool yang akan diupdateCLUSTER_NAME
: nama cluster tempat node pool akan dilampirkanGOOGLE_CLOUD_LOCATION
: region yang didukung Google Cloud yang mengelola cluster Anda—misalnya,us-west1
NODE_POOL_VERSION
: versi node pool yang didukung baruMIN_NODES
: jumlah minimum node baru yang dapat dimuat node pool. Harus0
atau lebih besar.MAX_NODES
: jumlah maksimum node baru yang dapat dimuat node pool. Harus minimal1
dan nilaiMIN_NODES
.
Membatalkan operasi update
Untuk membatalkan operasi update node pool yang sedang berlangsung, jalankan perintah berikut:
gcloud container azure operations cancel OPERATION_NAME
Ganti OPERATION_NAME
dengan nama operasi update.
Perhatikan bahwa membatalkan operasi update node pool yang sedang berlangsung tidak akan mengembalikan update node yang telah selesai. Hal ini dapat menyebabkan kumpulan node diperbarui sebagian.
Langkah berikutnya
- Baca dokumentasi referensi gcloud container azure node-pools create.
- Hapus kumpulan node.