Memperbarui node pool

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

Namun, dokumen ini tidak menyediakan 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 mengupdate kumpulan node, Anda harus memiliki izin Identity and Access Management berikut: gkemulticloud.googleapis.com/awsNodePools.update.

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

Memperbarui node pool

Bagian berikut menjelaskan cara melakukan berbagai update pada kumpulan node. Kumpulan node adalah sekelompok node di dalam cluster yang memiliki konfigurasi yang sama. Semua node dalam cluster harus termasuk dalam kumpulan node.

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

Mengubah versi kumpulan node

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

Untuk mengubah versi kumpulan node, tentukan versi baru menggunakan flag 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:

Mengupdate jenis instance kumpulan node

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

Untuk mengubah jenis instance kumpulan node, tentukan jenis instance baru menggunakan flag 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: region Google Cloud yang mengelola cluster Anda.
  • INSTANCE_TYPE: jenis instance mesin AWS baru untuk kumpulan node ini. Contoh, m5.xlarge.

Update untuk jenis instance kumpulan node tidak boleh mengubah arsitektur CPU dasar instance EC2. Misalnya, jika kumpulan node asli Anda menggunakan instance dengan CPU x86, jenis instance yang telah diupdate harus terus menggunakan CPU x86, bukan arsitektur lainnya.

Untuk mengetahui daftar lengkap instance yang didukung dan arsitektur yang mendasarinya, baca jenis instance AWS yang didukung.

Merotasi kunci enkripsi kumpulan node

Untuk mengetahui informasi tentang cara mengupdate kunci enkripsi KMS kumpulan node Anda, lihat Rotasi kunci.

Ganti grup keamanan kumpulan node

Untuk mengupdate grup keamanan yang terpasang ke kumpulan node, 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: region Google Cloud yang mengelola cluster Anda.
  • SECURITY_GROUP_IDS: daftar grup keamanan yang dipisahkan koma untuk dilampirkan ke kumpulan node.

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 menjalankan update dinamis, peran agen layanan API Anda harus memiliki izin IAM AWS berikut:

  • ec2:ModifyInstanceAttribute
  • ec2:DescribeInstances

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

Untuk cluster yang menjalankan GKE versi sebelumnya, 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 berkelanjutan. Update berkelanjutan lebih mengganggu daripada update dinamis karena update berkelanjutan akan memulai ulang node, sedangkan update dinamis tidak. Untuk informasi selengkapnya tentang update berkelanjutan, lihat Meminta update.

Hapus grup keamanan kumpulan node

Anda dapat menghapus semua grup keamanan non-default yang disertakan pada kumpulan node dengan menjalankan perintah berikut. Untuk mengetahui informasi lebih lanjut mengenai grup keamanan default, baca Grup keamanan kumpulan node.

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: region Google Cloud yang mengelola cluster Anda.

Mengubah ukuran node pool

Untuk mengubah ukuran kumpulan node (yaitu, jumlah node dalam kumpulan node), 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 yang akan ditambahi kumpulan node.
  • GOOGLE_CLOUD_LOCATION: region Google Cloud yang didukung yang mengelola cluster Anda. Misalnya, us-west1.
  • MIN_NODES: jumlah minimum node yang dapat dimuat kumpulan node. Nilai dapat berupa 0 atau lebih besar.
  • MAX_NODES: jumlah maksimum node yang dapat dimuat kumpulan node. Nilai harus minimal 1, dan lebih besar dari atau sama dengan nilai MIN_NODES.

Detail lebih lanjut tentang mengubah ukuran kumpulan node

Sebelum mengubah ukuran kumpulan node, Anda perlu mengevaluasi potensi dampaknya terhadap workload Anda.

Mengubah ukuran tindakan dan konsekuensinya

Saat mengubah ukuran kumpulan node, berbagai tindakan akan 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 selaras dengan rentang yang baru 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 ditetapkan tercapai.
  • Menurunkan 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 penskala otomatis cluster.
    • Menetapkan grup Auto Scaling untuk kumpulan node ke ukuran minimum yang ditentukan.
    • Memilih node satu per satu untuk dihapus. Setiap {i>node<i} ditutup, dihabiskan dari tugasnya, lalu dihentikan. Prosedur ini berlanjut hingga ukuran maksimum yang ditentukan tercapai.
    • Mengubah grup Penskalaan Otomatis kumpulan node agar selaras dengan ukuran maksimum yang baru.
    • Mengaktifkan kembali penskala otomatis cluster setelah ukuran maksimum tercapai.

Untuk mengetahui informasi selengkapnya tentang penskala otomatis cluster, lihat Tentang penskalaan otomatis cluster.

Perlindungan workload selama pengubahan ukuran

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

  • Selama pengurasan node, GKE di AWS akan mengikuti 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 akan memastikan penonaktifannya secara halus dan menunggu hingga dua jam. Jika Pod tetap berada di node setelah periode ini, instance virtual machine yang mendasarinya akan dihapus.

Memeriksa status kumpulan node Anda

Untuk memverifikasi bahwa update berhasil, Anda dapat memeriksa status kumpulan node 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: region Google Cloud yang mengelola cluster Anda.

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

Membatalkan operasi update

Sebelum membatalkan update kumpulan node yang sedang berlangsung, Anda perlu menentukan nama operasi yang sedang berlangsung. Untuk menampilkan operasi yang sedang berlangsung dan namanya 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. Misalnya, us-west1.

Cari OPERATION_NAME update yang ingin Anda batalkan 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:

Perlu diperhatikan bahwa membatalkan update node pool yang sedang berlangsung tidak akan mengembalikan update node yang telah selesai. Hal ini dapat menghasilkan kumpulan node yang diperbarui sebagian.