Memperbarui node pool

Setelah membuat cluster, Anda dapat mengubah node pool-nya. Hanya parameter tertentu dari kumpulan node yang dapat diupdate, seperti ukurannya, kunci enkripsi, dan grup keamanan. Dokumen ini menjelaskan cara melakukan pembaruan umum ini dan pembaruan umum lainnya pada node pool.

Namun, dokumen ini tidak memberikan daftar lengkap perintah update. Jika Anda perlu memperbarui parameter yang tidak dijelaskan dalam dokumen ini, lihat gcloud container aws node-pools update dan dokumentasi projects.locations.awsNodePools.patch.

Sebelum memulai

Untuk memperbarui node pool, Anda harus memiliki izin Identity and Access Management berikut: gkemulticloud.googleapis.com/awsNodePools.update.

Untuk mengetahui petunjuk tentang cara mengelola izin, lihat Memberikan peran IAM kepada pengguna.

Memperbarui node pool

Bagian berikut menjelaskan cara melakukan berbagai pembaruan pada kumpulan node. Node pool adalah sekelompok node dalam cluster yang memiliki konfigurasi yang sama. Semua node dalam cluster harus menjadi bagian dari node pool.

Anda dapat memperbarui beberapa parameter kumpulan node secara bersamaan dengan menentukan semuanya dalam perintah yang sama. Namun, agar lebih jelas, dokumen ini menunjukkan cara memperbarui satu parameter dalam satu waktu.

Mengubah versi node pool

Di GKE di AWS, mengubah versi node pool berarti mengubah versi GKE yang berjalan di node dalam node pool tersebut.

Untuk mengubah versi node pool, tentukan versi baru menggunakan tanda node-version dalam perintah berikut:

gcloud container aws node-pools update NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --location GOOGLE_CLOUD_LOCATION \
    --node-version NODE_POOL_VERSION

Ganti kode berikut:

Memperbarui jenis instance node pool

Jenis instance node pool adalah jenis instance AWS EC2 yang digunakan untuk membuat node di node pool. Misalnya, jenis instance m5.xlarge memiliki 4 vCPU, memori 16 GB, dan penyimpanan SSD 32 GB.

Untuk mengubah jenis instance node pool, tentukan jenis instance baru menggunakan tanda instance-type dalam perintah berikut:

gcloud container aws node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --instance-type=INSTANCE_TYPE

Ganti kode berikut:

  • NODE_POOL_NAME: nama node pool Anda.
  • CLUSTER_NAME: nama cluster Anda.
  • GOOGLE_CLOUD_LOCATION: Google Cloud region yang mengelola cluster Anda.
  • INSTANCE_TYPE: jenis instance mesin AWS baru untuk node pool ini. Contoh, m5.xlarge.

Update pada jenis instance node pool tidak boleh mengubah arsitektur CPU yang mendasar dari instance EC2. Misalnya, jika kumpulan node asli Anda menggunakan instance dengan CPU x86, jenis instance yang diperbarui harus terus menggunakan CPU x86, bukan arsitektur lain.

Untuk mengetahui daftar lengkap instance yang didukung dan arsitektur dasarnya, lihat jenis instance AWS yang didukung.

Merotasi kunci enkripsi node pool

Untuk mengetahui informasi tentang cara memperbarui kunci enkripsi KMS node pool Anda, lihat Rotasi kunci.

Mengganti grup keamanan node pool

Untuk mengupdate grup keamanan yang terlampir ke node pool, jalankan perintah berikut:

gcloud container aws node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --security-group-ids=SECURITY_GROUP_IDS

Ganti kode berikut:

  • NODE_POOL_NAME: nama node pool yang akan diupdate.
  • CLUSTER_NAME: nama cluster Anda.
  • GOOGLE_CLOUD_LOCATION: Google Cloud region yang mengelola cluster Anda.
  • SECURITY_GROUP_IDS: daftar grup keamanan yang dipisahkan koma untuk dilampirkan ke node pool.

Untuk cluster yang menjalankan GKE versi 1.25 atau yang lebih baru, update dapat dilakukan secara dinamis tanpa memulai ulang node. Ini adalah pendekatan yang direkomendasikan untuk cluster yang menggunakan GKE v1.25 atau yang lebih baru.

Untuk melakukan update dinamis, peran agen layanan API Anda harus memiliki izin AWS IAM berikut:

  • ec2:ModifyInstanceAttribute
  • ec2:DescribeInstances

Izin ini otomatis ditetapkan ke peran agen layanan API jika Anda memilih peran agen layanan API default saat membuat cluster.

Untuk cluster yang menjalankan GKE versi yang lebih lama, atau cluster yang menjalankan versi 1.25 atau yang lebih baru, tetapi agen layanan API tidak memiliki izin untuk melakukan update dinamis, update dilakukan menggunakan update bertahap. Update berkelanjutan lebih mengganggu daripada update dinamis karena update berkelanjutan memulai ulang node, sedangkan update dinamis tidak. Untuk mengetahui informasi selengkapnya tentang peluncuran update, lihat Update lonjakan.

Menghapus grup keamanan node pool

Anda dapat menghapus semua grup keamanan non-default yang terlampir ke node pool dengan menjalankan perintah berikut. Untuk mengetahui informasi selengkapnya tentang grup keamanan default, lihat Grup keamanan node pool.

gcloud container aws node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=GOOGLE_CLOUD_LOCATION \
    --clear-security-group-ids

Ganti kode berikut:

  • NODE_POOL_NAME: nama node pool yang akan diupdate.
  • CLUSTER_NAME: nama cluster Anda.
  • GOOGLE_CLOUD_LOCATION: Google Cloud region yang mengelola cluster Anda.

Mengubah ukuran node pool

Untuk mengubah ukuran node pool (yaitu, jumlah node dalam node pool), tetapkan nilai baru ke tanda min-nodes dan max-nodes dalam perintah berikut:

gcloud container aws node-pools update NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --location GOOGLE_CLOUD_LOCATION \
    --min-nodes MIN_NODES \
    --max-nodes MAX_NODES

Ganti kode berikut:

  • NODE_POOL_NAME: nama node pool yang akan diupdate.
  • CLUSTER_NAME: nama cluster tempat node pool akan dipasang.
  • GOOGLE_CLOUD_LOCATION: region Google Cloud yang didukung yang mengelola cluster Anda. Contohnya, us-west1
  • MIN_NODES: jumlah minimum node yang dapat dimuat node pool. Nilai dapat berupa 0 atau lebih besar.
  • MAX_NODES: jumlah maksimum node yang dapat dimuat node pool. Nilai harus minimal 1, dan lebih besar dari atau sama dengan nilai MIN_NODES.

Detail lebih lanjut tentang mengubah ukuran node pool

Sebelum mengubah ukuran node pool, penting untuk mengevaluasi potensi akibatnya pada beban kerja Anda.

Tindakan mengubah ukuran dan konsekuensinya

Saat mengubah ukuran kumpulan node, berbagai tindakan dipicu berdasarkan konfigurasi baru dan status node saat ini. Penting untuk memahami tindakan ini dan implikasinya:

  • Tidak ada perubahan: Jika jumlah node saat ini sudah sesuai dengan rentang baru yang ditentukan, GKE di AWS tidak akan melakukan penyesuaian pada jumlah node.
  • Meningkatkan jumlah minimum: Jika jumlah minimum node baru ditetapkan lebih tinggi daripada jumlah yang ada, GKE di AWS akan menambahkan node secara bertahap hingga ukuran minimum yang baru ditentukan tercapai.
  • Mengurangi jumlah maksimum: Jika Anda mengubah jumlah node maksimum ke nilai yang lebih rendah dari jumlah yang ada, GKE di AWS akan melakukan tindakan berikut:
    • Menonaktifkan autoscaler cluster.
    • Menetapkan grup Penskalaan Otomatis untuk node pool ke ukuran minimum yang ditentukan.
    • Memilih node individual untuk dihapus. Setiap node diisolasi, tugasnya dihentikan, lalu diakhiri. Prosedur ini berlanjut hingga ukuran maksimum yang ditentukan tercapai.
    • Mengubah grup Auto Scaling node pool agar sesuai dengan ukuran maksimum baru.
    • Mengaktifkan kembali autoscaler cluster setelah ukuran maksimum tercapai.

Untuk mengetahui informasi selengkapnya tentang autoscaler cluster, lihat Tentang autoscaler cluster.

Perlindungan workload selama pengubahan ukuran

Untuk memastikan ketersediaan workload yang berkelanjutan selama pengubahan ukuran node pool, GKE di AWS menyediakan pengamanan berikut:

  • Selama pengosongan node, GKE on AWS mematuhi konfigurasi PodDisruptionBudget hingga satu jam. Pod yang tersisa di node setelah periode ini akan dihapus.

  • Saat node disetel untuk dimulai ulang atau dihapus, GKE di AWS memastikan penonaktifan yang benar dan menunggu hingga dua jam. Jika Pod tetap berada di node setelah periode ini, instance virtual machine yang mendasarinya akan dihapus.

Memeriksa status node pool

Untuk memverifikasi bahwa update Anda berhasil, Anda dapat memeriksa status node pool dengan menjalankan perintah berikut:

gcloud container aws node-pools describe NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --location GOOGLE_CLOUD_LOCATION

Ganti kode berikut:

  • NODE_POOL_NAME: nama node pool Anda.
  • CLUSTER_NAME: nama cluster Anda.
  • GOOGLE_CLOUD_LOCATION: Google Cloud region yang mengelola cluster Anda.

GKE di AWS mencoba melakukan update yang diminta ke node pool, lalu melakukan health check. Jika salah satu langkah update gagal, status node pool akan ditandai sebagai DEGRADED.

Membatalkan operasi pembaruan

Sebelum dapat membatalkan update node pool yang sedang berlangsung, Anda perlu menentukan nama operasi yang sedang berjalan. Untuk mencantumkan operasi yang sedang berlangsung dan nama masing-masing, jalankan perintah berikut:

gcloud container aws operations list--filter="status=PENDING OR status=RUNNING"
    --location GOOGLE_CLOUD_LOCATION

Ganti GOOGLE_CLOUD_LOCATION dengan region Google Cloud yang didukung yang mengelola cluster Anda. Contohnya, us-west1

Cari OPERATION_NAME update yang ingin dibatalkan dalam output perintah. Untuk mengetahui daftar operasi, lihat gcloud container aws operations list.

Setelah mengidentifikasi OPERATION_NAME, Anda dapat membatalkan operasi dengan perintah berikut:

gcloud container aws operations cancel OPERATION_NAME
    --location GOOGLE_CLOUD_LOCATION

Ganti kode berikut:

Perhatikan bahwa pembatalan update node pool yang sedang berlangsung tidak akan mengembalikan update node yang telah selesai. Hal ini dapat menyebabkan node pool diupdate sebagian.