Memperbarui node pool

Topik ini menjelaskan cara mengupdate node pool. Anda dapat memperbarui kumpulan node karena alasan berikut:

  • Untuk mengupgrade versi kumpulan node Anda
  • Untuk mengubah jumlah node dalam kumpulan node
  • Untuk mengubah anotasi kumpulan node (Hanya dapat diperbarui melalui API)

Anda juga dapat mengubah parameter tambahan di node pool yang tidak tercantum di atas. Untuk 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 diperlukan GKE di Azure untuk mengupdate kumpulan node. Proses ini berbeda-beda, bergantung pada tingkat perubahan yang diperlukan pada kumpulan node.

Update khusus konfigurasi

Jika GKE di Azure dapat mengupdate kumpulan node tanpa memulai ulang atau membuat ulang resource apa pun, GKE akan membuat perubahan tersebut. Misalnya, memperbarui anotasi kumpulan node tidak akan memulai ulang instance apa pun.

Update berkelanjutan

Jika perubahan pada kumpulan node memerlukan proses mulai ulang mesin virtual yang sudah ada, misalnya saat mengupdate versi Kubernetes, GKE di Azure akan melakukan langkah-langkah berikut:

  1. Ubah skala virtual machine node pool dengan konfigurasi baru.
  2. Pilih instance dasar satu node yang akan diupdate.
  3. GKE pada coron Azure dan drains node. Pada tahap ini, Pod baru tidak dapat dijadwalkan pada 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 di fase Tertunda hingga dapat dijadwalkan.
  4. Update instance untuk mengambil konfigurasi terbaru dari set skala virtual machine-nya.
  5. Menggambar ulang dan memulai ulang instance.
  6. Tunggu hingga semua node dalam kumpulan node ini responsif.
  7. Jika semua node dalam kumpulan node ini responsif, pilih node lain sampai semua node diupdate. Jika ada node yang tidak responsif, GKE di Azure akan menempatkan kumpulan node ke status DEGRADED. Untuk informasi selengkapnya, lihat Update yang gagal.

Melindungi workload selama update berkelanjutan kumpulan node

Selama update berkelanjutan kumpulan node, GKE di Azure akan menerapkan konfigurasi
Anggaran PodDisruption hingga satu jam setelah node mulai dikosongkan. Setelah satu jam, GKE di Azure akan menghapus semua Pod yang tersisa di node.

Selama update berkelanjutan, GKE di Azure melakukan penonaktifan semua node yang akan dimulai ulang atau dihapus dengan upaya terbaik hingga dua jam. Setelah dua jam, jika ada objek Pod yang tersisa di node, GKE di Azure akan menghapus node tersebut dan me-reimage instance virtual machine yang mendasarinya.

Mengubah ukuran kumpulan node

GKE di kumpulan node Azure memiliki cluster penskalaan otomatis yang diaktifkan secara default. Autoscaler cluster otomatis mengubah ukuran kumpulan node berdasarkan permintaan workload Anda. Untuk mengetahui informasi selengkapnya tentang penskala otomatis cluster, lihat Penskalaan otomatis cluster.

Saat Anda mengubah jumlah maksimum dan minimum node dalam kumpulan node, GKE di Azure akan mengambil tindakan yang berbeda, bergantung pada konfigurasi baru dan jumlah node kumpulan node saat ini. Tindakan ini termasuk:

  • Jika jumlah node kumpulan node saat ini sudah berada dalam rentang baru, GKE di Azure tidak mengubah jumlah node dalam kumpulan.

  • Jika jumlah minimum node baru lebih tinggi dari jumlah node kumpulan node saat ini, GKE di Azure akan menambahkan lebih banyak node hingga kumpulan node mencapai ukuran minimum baru.

  • Jika jumlah maksimum node yang baru kurang dari jumlah node kumpulan node saat ini, GKE di Azure akan mengurangi ukuran kumpulan node dengan melakukan tindakan berikut:

    1. Mengupdate konfigurasi penskalaan otomatis ke skala virtual machine yang ditetapkan di kumpulan node
    2. Pilih node untuk dihapus
    3. Cordon dan menguras node
    4. Menghapus instance virtual machine yang mendasarinya
    5. Tunggu hingga mesin virtual yang dihapus benar-benar hilang
    6. Melakukan health check pada seluruh kumpulan node
    7. Ulangi hingga jumlah node mencapai jumlah yang diinginkan

Cara GKE di Azure melindungi workload selama pengubahan ukuran kumpulan node

Selama perubahan ukuran kumpulan node, GKE di Azure akan menerapkan konfigurasi Anggaran PodDisruption hingga satu jam setelah node mulai dikosongkan. Setelah satu jam, GKE di Azure akan menghapus semua objek Pod yang tersisa di node tersebut.

Selama pengubahan ukuran kumpulan node, GKE di Azure melakukan penonaktifan halus pada semua node yang akan dimulai ulang atau dihapus, dan menunggu hingga dua jam. Setelah dua jam, jika 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 di 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 kumpulan node Anda
  • CLUSTER_NAME: nama cluster Anda
  • GOOGLE_CLOUD_LOCATION: region Google Cloud yang mengelola cluster Anda

Output-nya 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 memperbarui kumpulan node dengan Google Cloud CLI. Untuk mengupdate kumpulan node, 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 kumpulan node yang akan diperbarui
  • CLUSTER_NAME: nama cluster untuk menambahkan kumpulan node ke
  • GOOGLE_CLOUD_LOCATION: region Google Cloud yang didukung yang mengelola cluster Anda—misalnya, us-west1
  • NODE_POOL_VERSION: versi baru kumpulan node yang didukung
  • MIN_NODES: jumlah minimum node baru yang dapat dimuat kumpulan node. Harus 0 atau lebih besar.
  • MAX_NODES: jumlah maksimum node baru yang dapat dimuat kumpulan node. Minimal 1 dan nilai MIN_NODES.

Membatalkan operasi pembaruan

Untuk membatalkan operasi update kumpulan node yang sedang berlangsung, jalankan perintah berikut:

gcloud container azure operations cancel OPERATION_NAME

Ganti OPERATION_NAME dengan nama operasi update.

Perhatikan bahwa membatalkan operasi pembaruan kumpulan node yang sedang berlangsung tidak akan mengembalikan pembaruan node yang telah selesai. Hal ini dapat menghasilkan kumpulan node yang diperbarui sebagian.

Langkah selanjutnya