Mengupgrade cluster atau node pool secara manual

Dokumen ini menjelaskan cara meminta upgrade atau downgrade secara manual untuk panel kontrol atau node cluster Google Kubernetes Engine (GKE). GKE secara otomatis mengupgrade versi bidang kontrol dan node untuk memastikan cluster menerima fitur baru, perbaikan bug, dan patch keamanan. Namun, seperti yang dijelaskan dalam dokumen ini, Anda juga dapat melakukan upgrade ini secara manual sendiri.

Untuk mengetahui informasi selengkapnya tentang cara kerja upgrade cluster otomatis dan manual, lihat Tentang upgrade cluster GKE. Anda juga dapat mengontrol kapan upgrade otomatis dapat dan tidak dapat dilakukan dengan mengonfigurasi masa dan pengecualian pemeliharaan.

Anda dapat mengupgrade versi secara manual sebagai berikut:

Untuk mengupgrade cluster, GKE mengupdate versi yang dijalankan bidang kontrol dan node, dalam operasi terpisah. Cluster diupgrade ke versi minor yang lebih baru (misalnya, 1.33 ke 1.34) atau versi patch yang lebih baru (misalnya, 1.33.4-gke.1350000 ke 1.33.5-gke.1080000). Bidang kontrol dan node cluster tidak selalu menjalankan versi yang sama setiap saat. Untuk mengetahui informasi selengkapnya tentang versi, lihat Pembuatan versi dan dukungan GKE.

Untuk mengetahui informasi selengkapnya tentang cara kerja upgrade cluster, termasuk upgrade otomatis dan manual, lihat Tentang upgrade cluster GKE.

GKE versi baru diumumkan secara berkala, dan Anda dapat menerima pemberitahuan tentang versi baru yang tersedia untuk setiap cluster tertentu dengan notifikasi cluster. Untuk menemukan target upgrade otomatis tertentu untuk cluster, dapatkan informasi tentang upgrade cluster.

Untuk mengetahui informasi selengkapnya tentang versi yang tersedia, lihat Pembuatan versi. Untuk mengetahui informasi selengkapnya tentang cluster, lihat Arsitektur cluster. Untuk panduan tentang mengupgrade cluster, lihat Praktik terbaik untuk mengupgrade cluster.

Sebelum memulai

Sebelum memulai, pastikan Anda telah melakukan tugas berikut:

  • Aktifkan Google Kubernetes Engine API.
  • Aktifkan Google Kubernetes Engine API
  • Jika ingin menggunakan Google Cloud CLI untuk tugas ini, instal lalu lakukan inisialisasi gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan perintah gcloud components update. gcloud CLI versi sebelumnya mungkin tidak mendukung menjalankan perintah dalam dokumen ini.

Tentang upgrade

Bidang kontrol dan node cluster diupgrade secara terpisah. Bidang kontrol dan node cluster tidak selalu menjalankan versi yang sama setiap saat.

Bidang kontrol dan node cluster diupgrade secara berkala, terlepas dari cluster tersebut telah terdaftar di saluran rilis atau belum.

Batasan

Cluster alfa tidak dapat diupgrade.

Versi yang didukung

Catatan rilis mengumumkan kapan versi baru tersedia dan kapan versi sebelumnya tidak lagi tersedia. Anda dapat membuat daftar semua versi cluster dan node yang didukung kapan saja menggunakan perintah ini:

gcloud container get-server-config \
    --location=CONTROL_PLANE_LOCATION

Ganti CONTROL_PLANE_LOCATION dengan lokasi (region atau zona) untuk bidang kontrol, seperti us-central1 atau us-central1-a.

Jika cluster terdaftar di saluran rilis, Anda dapat mengupgrade ke versi patch di saluran rilis yang berbeda dengan versi minor yang sama dengan panel kontrol. Misalnya, Anda dapat mengupgrade cluster dari versi 1.33.4-gke.1350000 di saluran Reguler ke 1.33.5-gke.1162000 di saluran Cepat. Untuk mengetahui informasi selengkapnya, lihat Menjalankan versi patch dari channel yang lebih baru. Semua cluster Autopilot terdaftar di saluran rilis.

Tentang melakukan downgrade

Anda dapat mendowngrade versi cluster ke versi sebelumnya dalam skenario tertentu:

Selain skenario yang dijelaskan di poin sebelumnya, Anda tidak dapat melakukan downgrade cluster. Anda tidak dapat mendowngrade panel kontrol cluster ke versi minor sebelumnya, termasuk setelah upgrade minor panel kontrol satu langkah. Misalnya, jika bidang kontrol Anda menjalankan GKE versi 1.34, Anda tidak dapat melakukan downgrade ke versi 1.33. Jika Anda mencoba melakukannya, pesan error berikut akan muncul:

ERROR: (gcloud.container.clusters.upgrade) ResponseError: code=400,
message=Master cannot be upgraded to "1.33.4-gke.1350000": specified version is
not newer than the current version.

Sebaiknya Anda menguji dan memenuhi persyaratan upgrade versi minor dengan cluster di lingkungan pengujian saat versi minor baru tersedia, tetapi sebelum versi tersebut menjadi target upgrade otomatis untuk cluster Anda. Hal ini terutama direkomendasikan jika cluster Anda mungkin terpengaruh oleh perubahan signifikan dalam versi minor berikutnya, seperti API atau fitur yang tidak digunakan lagi yang dihapus. Untuk mengetahui informasi selengkapnya tentang ketersediaan versi, lihat Versi yang tersedia di saluran.

Mengupgrade bidang kontrol cluster

GKE mengupgrade bidang kontrol dan node cluster secara otomatis. Untuk mengelola cara GKE mengupgrade cluster Anda, lihat Mengontrol upgrade cluster.

Dengan cluster Autopilot dan cluster Standard regional, bidang kontrol tetap tersedia selama upgrade bidang kontrol. Namun, saat Anda memulai upgrade bidang kontrol untuk cluster zonal, Anda tidak dapat mengubah konfigurasi cluster hingga bidang kontrol dapat diakses kembali dalam beberapa menit. Upgrade bidang kontrol tidak memengaruhi ketersediaan node pekerja tempat workload Anda berjalan karena node tersebut tetap tersedia selama upgrade bidang kontrol.

Sebagai bagian dari pengelolaan versi cluster, Anda dapat memulai upgrade manual kapan saja setelah versi baru tersedia, menggunakan salah satu metode berikut:

  • Upgrade satu langkah: upgrade bidang kontrol Anda langsung ke versi minor atau versi patch yang lebih baru secepat mungkin. Anda dapat menggunakan pendekatan ini jika Anda telah memvalidasi performa cluster dan workload pada versi minor baru.
  • Upgrade ringan panel kontrol dua langkah dengan keamanan rollback (Pratinjau): mengupgrade panel kontrol Anda ke versi ringan yang lebih baru menggunakan proses dua langkah di mana Anda dapat memvalidasi versi ringan baru selama periode waktu perendaman, dan melakukan rollback jika diperlukan. Metode upgrade ini hanya tersedia untuk upgrade ke 1.33 atau yang lebih baru, untuk upgrade panel kontrol minor manual.

Mengupgrade bidang kontrol secara manual dengan upgrade satu langkah

Anda dapat mengupgrade panel kontrol Autopilot atau Standard secara manual menggunakan konsol Cloud de Confiance atau Google Cloud CLI.

Konsol

Untuk mengupdate panel kontrol cluster secara manual, lakukan langkah-langkah berikut:

  1. Buka halaman Google Kubernetes Engine di konsol Cloud de Confiance .

    Buka Google Kubernetes Engine

  2. Klik nama cluster.

  3. Di bagian Dasar-dasar cluster, klik Upgrade Tersedia di samping Versi.

  4. Pilih versi baru, lalu klik Simpan Perubahan.

gcloud

Guna melihat versi yang tersedia untuk panel kontrol cluster Anda, jalankan perintah berikut:

gcloud container get-server-config \
    --location=CONTROL_PLANE_LOCATION

Untuk mengupgrade ke versi cluster default, jalankan perintah berikut:

gcloud container clusters upgrade CLUSTER_NAME \
    --master \
    --location=CONTROL_PLANE_LOCATION

Untuk mengupgrade ke versi tertentu yang bukan default, tentukan flag --cluster-version seperti pada perintah berikut:

gcloud container clusters upgrade CLUSTER_NAME \
    --master \
    --location=CONTROL_PLANE_LOCATION \
    --cluster-version=VERSION

Ganti VERSION dengan versi yang akan digunakan cluster setelah upgrade. Anda dapat menggunakan versi tertentu, seperti 1.32.9-gke.1072000 atau Anda dapat menggunakan alias versi, seperti latest. Untuk mengetahui informasi selengkapnya, lihat Menentukan versi cluster.

Setelah mengupgrade panel kontrol Standard, Anda dapat mengupgrade node-nya. Secara default, node Standard yang dibuat menggunakan konsol Cloud de Confiance telah mengaktifkan upgrade otomatis, sehingga proses ini terjadi secara otomatis. Autopilot selalu mengupgrade node secara otomatis.

Upgrade minor bidang kontrol dua langkah dengan keamanan rollback

Anda dapat mengupgrade bidang kontrol cluster Autopilot atau Standard GKE secara manual ke versi minor berikutnya dengan upgrade dua langkah. Dalam proses dua langkah ini, Anda dapat menguji performa cluster dengan versi minor baru, yang dikenal sebagai versi biner, sambil menggunakan fitur dan API dari versi minor sebelumnya, yang dikenal sebagai versi yang diemulasi. Selama waktu perendaman ini, saat panel kontrol berjalan dalam apa yang dikenal sebagai mode yang diemulasi, Anda dapat melakukan roll back ke versi minor sebelumnya, jika perlu. Untuk mengetahui informasi selengkapnya tentang cara Kubernetes memungkinkan upgrade jenis ini, lihat Versi Kompatibilitas untuk Komponen Panel Kontrol Kubernetes.

Upgrade dua langkah berfungsi dengan cara berikut:

  1. Upgrade biner: GKE mengupgrade biner bidang kontrol ke versi minor baru, tetapi mengemulasi versi minor sebelumnya:

    • Meniru versi sebelumnya: cluster menjalankan biner baru, tetapi terus meniru perilaku API versi minor sebelumnya. Misalnya, Anda dapat memanggil API yang dihapus dalam versi minor baru, tetapi masih tersedia dalam versi minor sebelumnya.
    • Uji biner baru: Anda dapat menguji biner baru untuk mengetahui regresi, perbaikan, dan perubahan performa sebelum Anda membuat fitur Kubernetes yang tersedia dengan versi minor baru dapat diakses. Pantau metrik, log, status Pod, tingkat error, dan latensi aplikasi.
    • Menerapkan perubahan: tunggu selama enam jam hingga tujuh hari untuk memberi diri Anda waktu untuk menguji dan memantau. Setelah waktu ini, GKE akan melakukan upgrade versi yang di-emulasi.
    • Melakukan roll back atau menyelesaikan upgrade: Anda dapat melakukan roll back, jika perlu. Atau, Anda dapat melanjutkan ke tahap berikutnya jika yakin dengan versi kecil baru, tidak ingin menunggu waktu pengujian selesai, dan siap mulai menggunakan fitur baru dan perubahan API.
  2. Upgrade versi yang di-emulasi: GKE mengupdate versi yang di-emulasi agar cocok dengan versi biner baru.

    • Mengaktifkan fitur baru: semua fitur baru dan perubahan API pada versi minor baru diaktifkan.
    • Tidak ada rollback: setelah langkah ini terjadi, Anda tidak dapat melakukan rollback ke versi minor asli. Upgrade selesai.

Selama operasi ini, batasan berikut berlaku:

  • Anda tidak dapat memulai upgrade minor bidang kontrol satu langkah.
  • Anda tidak dapat membuat atau mengupgrade node ke versi yang lebih baru daripada versi yang diemulasi.
  • GKE tidak melakukan upgrade otomatis apa pun pada bidang kontrol atau node.

Memulai upgrade dua langkah

Mulai upgrade dua langkah dengan menjalankan perintah berikut:

gcloud beta container clusters upgrade CLUSTER_NAME \
  --location=CONTROL_PLANE_LOCATION \
  --cluster-version VERSION \
  --control-plane-soak-duration SOAK_DURATION \
  --master

Ganti kode berikut:

  • CLUSTER_NAME: nama cluster.
  • CONTROL_PLANE_LOCATION: lokasi (region atau zona) untuk bidang kontrol, seperti us-central1 atau us-central1-a.
  • VERSION: patch tertentu dari versi minor berikutnya. Misalnya, jika cluster Anda menjalankan 1.33, 1.34.1-gke.1829001.
  • SOAK_DURATION: waktu tunggu di tahap aman untuk rollback. Anda dapat menetapkan nilai ini selama minimal 6 jam hingga maksimal 7 hari menggunakan Format durasi absolut seperti yang dijelaskan dalam referensi untuk gcloud topic datetimes. Misalnya, gunakan 2d1h untuk waktu perendaman selama dua hari dan satu jam.

Menguji biner baru selama upgrade dua langkah

Selama waktu perendaman, validasi bahwa cluster Anda—dengan panel kontrol yang menjalankan biner baru—dan beban kerja berjalan seperti yang diharapkan. Anda dapat melakukan salah satu langkah berikut, bergantung pada apakah Anda dapat memverifikasi bahwa beban kerja kompatibel dengan biner baru:

  • Roll back: jika Anda melihat masalah pada workload yang berjalan di biner baru, Anda dapat melakukan roll back ke versi minor sebelumnya.
  • Selesaikan upgrade: jika Anda telah memverifikasi bahwa beban kerja Anda berjalan tanpa masalah pada biner baru, Anda dapat menyelesaikan upgrade jika ingin mulai menggunakan fitur dan API versi baru.
  • Tunggu: Anda juga dapat menunggu hingga waktu perendaman selesai. Setelah itu, GKE akan melakukan upgrade versi yang di-emulasi, dengan beralih menggunakan fitur dan API versi minor baru.
Mengamati upgrade yang sedang berlangsung

Untuk mendapatkan informasi tentang upgrade yang sedang berlangsung, gunakan salah satu referensi berikut:

Me-roll back upgrade dua langkah setelah upgrade versi biner

Selama upgrade dua langkah, setelah upgrade versi biner adalah periode pengujian. Selama periode ini, Anda dapat melakukan roll back ke versi minor sebelumnya, jika perlu. Anda tidak dapat melakukan roll back setelah GKE melakukan upgrade versi yang di-emulasi.

Setelah operasi rollback selesai, bidang kontrol Anda akan menjalankan versi minor sebelumnya seperti yang dilakukan sebelum Anda memulai upgrade dua langkah.

Lakukan langkah-langkah berikut untuk melakukan roll back, jika memungkinkan:

  1. Pastikan Anda masih dapat mengembalikan panel kontrol ke versi minor sebelumnya dengan menjalankan perintah gcloud CLI di Mendapatkan informasi upgrade di tingkat cluster. Tentukan apakah Anda dapat atau tidak dapat melakukan rollback berdasarkan output perintah:

    • Anda dapat membatalkan jika ada bagian rollbackSafeUpgradeStatus dalam output. Di bagian tersebut, simpan previousVersion untuk variabel VERSION di langkah berikutnya. Lanjutkan ke langkah berikutnya.
    • Anda tidak dapat melakukan rollback jika tidak ada bagian rollbackSafeUpgradeStatus. Hal ini menunjukkan bahwa GKE telah melakukan upgrade versi yang di-emulasi. Anda tidak dapat melakukan langkah berikutnya.
  2. Jika langkah sebelumnya menentukan bahwa rollback dapat dilakukan, lakukan rollback ke versi sebelumnya:

    gcloud container clusters upgrade CLUSTER_NAME \
      --location=CONTROL_PLANE_LOCATION \
      --cluster-version VERSION
      --master
    

    VERSION harus merupakan versi patch yang sama persis dengan yang digunakan sebelumnya. Anda menyimpan versi ini pada langkah sebelumnya.

Setelah menjalankan perintah ini dan melakukan downgrade ke versi sebelumnya, Anda dapat menentukan alasan beban kerja Anda tidak berjalan dengan benar pada biner baru. Jika diperlukan, Anda dapat menghubungi Cloud Customer Care, dengan memberikan log, pesan error, dan detail yang relevan tentang kegagalan validasi yang Anda alami. Untuk informasi selengkapnya, lihat Mendapatkan dukungan.

Setelah menyelesaikan masalah, Anda dapat mengupgrade secara manual lagi ke versi minor baru.

Menyelesaikan upgrade dua langkah

Selama periode perendaman, jika Anda telah memverifikasi bahwa beban kerja berhasil berjalan dengan biner baru, Anda dapat melewati sisa waktu perendaman:

gcloud beta container clusters clusters complete-control-plane-upgrade CLUSTER_NAME  \
  --location=CONTROL_PLANE_LOCATION

Setelah menjalankan perintah ini, Anda tidak dapat lagi melakukan downgrade ke versi minor sebelumnya.

Mendowngrade bidang kontrol ke versi patch sebelumnya

  1. Tetapkan pengecualian pemeliharaan sebelum melakukan downgrade untuk mencegah GKE mengupgrade otomatis bidang kontrol setelah Anda mendowngradenya.
  2. Downgrade panel kontrol cluster ke versi patch sebelumnya:

     gcloud container clusters upgrade CLUSTER_NAME \
         --master \
         --location=CONTROL_PLANE_LOCATION \
         --cluster-version=VERSION
    

Menonaktifkan upgrade otomatis cluster

Keamanan infrastruktur merupakan prioritas tinggi bagi GKE, sehingga panel kontrol diupgrade secara berkala dan tidak dapat dinonaktifkan. Namun, Anda dapat menerapkan masa dan pengecualian pemeliharaan untuk menangguhkan upgrade sementara bagi bidang kontrol dan node.

Meskipun tidak direkomendasikan, Anda dapat menonaktifkan upgrade otomatis node untuk node pool Standar.

Memeriksa histori upgrade bidang kontrol terbaru

Untuk melihat ringkasan histori upgrade otomatis terbaru cluster, dapatkan informasi tentang upgrade cluster.

Atau, Anda dapat mencantumkan operasi terbaru untuk melihat kapan bidang kontrol diupgrade:

gcloud container operations list --filter="TYPE:UPGRADE_MASTER AND TARGET:CLUSTER_NAME" \
    --location=CONTROL_PLANE_LOCATION

Mengupgrade node pool

Secara default, node pool Standard telah mengaktifkan upgrade otomatis, dan semua node pool yang dikelola Autopilot di cluster Standard selalu mengaktifkan upgrade otomatis. Upgrade otomatis node memastikan bahwa panel kontrol dan versi node cluster Anda tetap sinkron dan sesuai dengan kebijakan ketidaksesuaian versi Kubernetes, yang memastikan bahwa panel kontrol kompatibel dengan node hingga dua versi minor yang lebih lama dari panel kontrol. Misalnya, bidang kontrol Kubernetes 1.34 kompatibel dengan node Kubernetes 1.32.

Praktik terbaik:

Hindari menonaktifkan upgrade otomatis node dengan node pool Standard agar cluster Anda mendapatkan manfaat dari upgrade yang tercantum dalam paragraf sebelumnya.

Dengan upgrade node pool GKE Standard, Anda dapat memilih tiga strategi upgrade yang dapat dikonfigurasi, termasuk upgrade lonjakan, upgrade blue-green, dan upgrade blue-green yang diskalakan otomatis (Pratinjau). Node pool yang dikelola Autopilot di cluster Standard selalu menggunakan upgrade lonjakan.

Untuk node pool Standar, pilih strategi dan gunakan parameter untuk menyesuaikan strategi agar paling sesuai dengan kebutuhan lingkungan cluster Anda.

Cara kerja upgrade node

Saat node sedang diupgrade, GKE berhenti menjadwalkan Pod baru pada node tersebut, dan mencoba menjadwalkan Pod yang berjalan ke node lain. Hal ini serupa dengan peristiwa lain yang membuat ulang node, seperti mengaktifkan atau menonaktifkan fitur pada node pool.

Selama upgrade node otomatis atau manual, PodDisruptionBudgets (PDB) dan masa tenggang penghentian Pod dipatuhi selama maksimum 1 jam. Jika Pod yang berjalan di node tidak dapat dijadwalkan ke node baru setelah satu jam, GKE akan tetap memulai upgrade. Perilaku ini berlaku meskipun Anda mengonfigurasi PDB agar selalu memiliki semua replika yang tersedia dengan menyetel kolom maxUnavailable ke 0 atau 0% atau dengan menyetel kolom minAvailable ke 100% atau ke jumlah replika. Dalam semua skenario ini, GKE menghapus Pod setelah satu jam agar penghapusan node dapat terjadi.

Praktik terbaik:

Jika workload yang berjalan di node pool Standar memerlukan lebih banyak fleksibilitas dengan penghentian yang terkontrol, gunakan upgrade blue-green yang menyediakan setelan waktu perendaman tambahan untuk memperpanjang pemeriksaan PDB melebihi default satu jam.

Untuk mempelajari lebih lanjut hal yang umumnya terjadi selama penghentian node, lihat topik tentang Pod.

Upgrade hanya akan selesai jika semua node telah dibuat ulang dan cluster dalam status baru. Saat node yang baru diupgrade didaftarkan dengan panel kontrol, GKE akan menandai node tersebut sebagai dapat dijadwalkan.

Instance node baru menjalankan versi Kubernetes baru serta:

Agar upgrade node pool dianggap selesai, semua node di node pool harus dibuat ulang. Jika upgrade dimulai, tetapi tidak selesai dan berada dalam status upgrade sebagian, versi node pool mungkin tidak mencerminkan versi semua node. Untuk mempelajari lebih lanjut, lihat Beberapa versi node tidak cocok dengan versi node pool setelah upgrade node pool yang tidak selesai. Untuk memastikan bahwa upgrade node pool telah selesai, periksa status upgrade node pool. Jika operasi upgrade melampaui periode retensi, periksa apakah setiap versi node individual cocok dengan versi node pool.

Menyimpan data Anda ke persistent disk sebelum mengupgrade

Sebelum mengupgrade node pool, Anda harus memastikan bahwa setiap data yang perlu disimpan telah disimpan di Pod menggunakan volume persisten, yang menggunakan persistent disk. Persistent disk dilepas, bukan dihapus, selama upgrade, dan datanya ditransfer di antar-Pod.

Batasan berikut berlaku untuk disk persisten:

  • Node tempat Pod berjalan harus berupa VM Compute Engine.
  • VM tersebut harus berada di project dan zona Compute Engine yang sama dengan persistent disk.

Untuk mempelajari cara menambahkan persistent disk ke instance node yang ada, lihat Menambahkan atau mengubah ukuran persistent disk zona dalam dokumentasi Compute Engine.

Mengupgrade node pool secara manual

Anda dapat mengupgrade versi node pool Standar atau node pool yang dikelola Autopilot secara manual dalam cluster Standar. Anda dapat mencocokkan versi panel kontrol atau menggunakan versi sebelumnya yang masih tersedia dan kompatibel dengan panel kontrol. Anda dapat mengupgrade beberapa node pool secara paralel secara manual, sedangkan GKE hanya mengupgrade satu node pool dalam satu waktu secara otomatis.

Saat Anda mengupgrade node pool secara manual, GKE akan menghapus label yang Anda tambahkan ke setiap node menggunakan kubectl. Untuk menghindari hal ini, terapkan label ke node pool.

Sebelum mengupgrade node pool secara manual, pertimbangkan kondisi berikut:

  • Mengupgrade node pool dapat mengganggu workload yang berjalan di node pool tersebut. Untuk menghindari hal ini, Anda dapat membuat node pool baru dengan versi yang diperlukan dan memigrasikan workload. Setelah migrasi, Anda dapat menghapus node pool lama.
  • Jika Anda mengupgrade node pool dengan Ingress yang berada dalam status error, grup instance tidak akan disinkronkan. Untuk mengatasi masalah ini, periksa statusnya terlebih dahulu menggunakan perintah kubectl get ing. Jika grup instance tidak disinkronkan, Anda dapat mengatasi masalah ini dengan menerapkan kembali manifes yang digunakan untuk membuat ingress.

Anda dapat mengupgrade node pool secara manual ke versi yang kompatibel dengan panel kontrol:

  • Untuk node pool Standard, Anda dapat menggunakan konsol Cloud de Confiance atau Google Cloud CLI.
  • Untuk node pool yang dikelola Autopilot, Anda hanya dapat menggunakan Google Cloud CLI.

Konsol

Untuk mengupgrade node pool Standar menggunakan konsol Cloud de Confiance , lakukan langkah-langkah berikut:

  1. Buka halaman Google Kubernetes Engine di konsol Cloud de Confiance .

    Buka Google Kubernetes Engine

  2. Klik nama cluster.

  3. Di halaman Cluster details, klik tab Nodes.

  4. Di bagian Node Pools, klik nama node pool yang ingin Anda upgrade.

  5. Klik Edit.

  6. Klik Change di bagian Node version.

  7. Pilih versi yang diperlukan dari menu drop-down Node version, lalu klik Change.

Mungkin perlu waktu beberapa menit untuk mengubah versi node.

gcloud

Variabel berikut digunakan dalam perintah di bagian ini:

  • CLUSTER_NAME: nama cluster node pool yang akan diupgrade.
  • NODE_POOL_NAME: nama node pool yang akan diupgrade.
  • CONTROL_PLANE_LOCATION: lokasi (region atau zona) untuk bidang kontrol, seperti us-central1 atau us-central1-a.
  • VERSION: versi Kubernetes tempat node diupgrade. Misalnya, --cluster-version=1.34.1-gke.1293000 atau cluster-version=latest.

Mengupgrade node pool:

gcloud container clusters upgrade CLUSTER_NAME \
  --node-pool=NODE_POOL_NAME \
  --location=CONTROL_PLANE_LOCATION

Untuk menentukan versi GKE yang berbeda pada node, gunakan flag --cluster-version yang bersifat opsional:

gcloud container clusters upgrade CLUSTER_NAME \
  --node-pool=NODE_POOL_NAME \
  --location=CONTROL_PLANE_LOCATION \
  --cluster-version VERSION

Untuk mengetahui informasi selengkapnya tentang cara menentukan versi, lihat Pembuatan versi.

Untuk informasi selengkapnya, lihat dokumentasi gcloud container clusters upgrade.

Men-downgrade node pool

Anda dapat mendowngrade node pool, misalnya, untuk memitigasi upgrade node pool yang tidak berhasil. Tinjau batasan sebelum mendowngrade node pool.

Praktik terbaik:

Gunakan strategi upgrade node blue-green jika Anda perlu mengoptimalkan mitigasi risiko untuk upgrade node pool yang memengaruhi workload Anda. Dengan strategi ini, Anda dapat me-roll back upgrade yang sedang berlangsung, agar dikembalikan ke node asli jika upgrade tidak berhasil.

  1. Tetapkan pengecualian pemeliharaan untuk cluster guna mencegah agar node pool tidak diupgrade secara otomatis oleh GKE setelah didowngrade.
  2. Untuk mendowngrade node pool, tentukan versi yang lebih lama sambil mengikuti petunjuk untuk Mengupgrade node pool secara manual.

Mengubah parameter upgrade lonjakan

Untuk mengetahui informasi selengkapnya tentang cara mengubah parameter upgrade lonjakan, lihat Mengonfigurasi upgrade lonjakan.

Memeriksa status upgrade node pool

Anda dapat memeriksa status upgrade menggunakan gcloud container operations.

Melihat daftar setiap operasi yang sedang berjalan dan selesai di cluster dari 12 hari terakhir jika ada kurang dari 5.000 operasi, atau 5.000 operasi terakhir:

gcloud container operations list \
    --location=CONTROL_PLANE_LOCATION

Setiap operasi diberi ID operasi dan jenis operasi serta waktu mulai dan berakhir, cluster target, dan status. Daftar tersebut akan terlihat mirip dengan contoh berikut:

NAME                              TYPE                ZONE           TARGET              STATUS_MESSAGE  STATUS  START_TIME                      END_TIME
operation-1505407677851-8039e369  CREATE_CLUSTER      us-west1-a     my-cluster                          DONE    20xx-xx-xxT16:47:57.851933021Z  20xx-xx-xxT16:50:52.898305883Z
operation-1505500805136-e7c64af4  UPGRADE_CLUSTER     us-west1-a     my-cluster                          DONE    20xx-xx-xxT18:40:05.136739989Z  20xx-xx-xxT18:41:09.321483832Z
operation-1505500913918-5802c989  DELETE_CLUSTER      us-west1-a     my-cluster                          DONE    20xx-xx-xxT18:41:53.918825764Z  20xx-xx-xxT18:43:48.639506814Z

Untuk mendapatkan informasi selengkapnya tentang operasi tertentu, tentukan ID operasi seperti yang ditunjukkan dalam perintah berikut:

gcloud container operations describe OPERATION_ID \
    --location=CONTROL_PLANE_LOCATION

Contoh:

gcloud container operations describe operation-1507325726639-981f0ed6
endTime: '20xx-xx-xxT21:40:05.324124385Z'
name: operation-1507325726639-981f0ed6
operationType: UPGRADE_CLUSTER
selfLink: https://container.googleapis.com/v1/projects/.../kubernetes-engine/docs/zones/us-central1-a/operations/operation-1507325726639-981f0ed6
startTime: '20xx-xx-xxT21:35:26.639453776Z'
status: DONE
targetLink: https://container.googleapis.com/v1/projects/.../kubernetes-engine/docs/zones/us-central1-a/clusters/...
zone: us-central1-a

Jika upgrade dibatalkan atau gagal dan selesai sebagian, Anda dapat melanjutkan atau melakukan roll back upgrade.

Memeriksa setelan upgrade node pool

Anda dapat melihat detail tentang strategi upgrade node yang digunakan untuk node pool Anda menggunakan perintah gcloud container node-pools describe. Untuk upgrade blue-green, perintah juga akan menampilkan fase saat ini dari upgrade.

Jalankan perintah berikut:

gcloud container node-pools describe NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION

Ganti kode berikut:

  • NODE_POOL_NAME: nama node pool yang akan dideskripsikan.
  • CLUSTER_NAME: nama cluster node pool yang akan dideskripsikan.
  • CONTROL_PLANE_LOCATION: lokasi (region atau zona) untuk bidang kontrol, seperti us-central1 atau us-central1-a.

Perintah ini akan memberikan output setelan upgrade saat ini. Contoh berikut menampilkan output jika Anda menggunakan strategi upgrade blue-green.

upgradeSettings:
  blueGreenSettings:
    nodePoolSoakDuration: 1800s
    standardRolloutPolicy:
      batchNodeCount: 1
      batchSoakDuration: 10s
  strategy: BLUE_GREEN

Jika Anda menggunakan strategi upgrade blue-green, outputnya juga menyertakan detail tentang setelan upgrade blue-green dan fase perantaranya saat ini. Contoh berikut menunjukkan kemungkinan tampilannya:

updateInfo:
  blueGreenInfo:
    blueInstanceGroupUrls:
    - https://www.googleapis.com/compute/v1/projects/{PROJECT_ID}/zones/{LOCATION}/instanceGroupManagers/{BLUE_INSTANCE_GROUP_NAME}
    bluePoolDeletionStartTime: {BLUE_POOL_DELETION_TIME}
    greenInstanceGroupUrls:
    - https://www.googleapis.com/compute/v1/projects/{PROJECT_ID}/zones/{LOCATION}/instanceGroupManagers/{GREEN_INSTANCE_GROUP_NAME} 
    greenPoolVersion: {GREEN_POOL_VERSION}
    phase: DRAINING_BLUE_POOL

Membatalkan upgrade node pool

Anda dapat membatalkan upgrade kapan saja. Untuk mempelajari lebih lanjut hal yang akan terjadi saat Anda membatalkan upgrade lonjakan, silakan melihat Membatalkan upgrade lonjakan. Untuk mempelajari lebih lanjut apa yang akan terjadi jika Anda membatalkan upgrade blue-green, silakan melihat Membatalkan upgrade blue-green.

  1. Mendapatkan ID operasi upgrade:

    gcloud container operations list \
          --location=CONTROL_PLANE_LOCATION
    
  2. Membatalkan upgrade:

    gcloud container operations cancel OPERATION_ID \
          --location=CONTROL_PLANE_LOCATION
    

Silakan melihat dokumentasi gcloud container operations cancel.

Melanjutkan upgrade node pool

Anda dapat melanjutkan upgrade dengan melakukan inisialisasi upgrade secara manual lagi, dengan menentukan versi target dari upgrade awal.

Misalnya, jika upgrade gagal, atau jika Anda menjeda upgrade yang sedang berlangsung, Anda dapat melanjutkan upgrade yang dibatalkan dengan memulai upgrade yang sama lagi di node pool, dengan menentukan versi target dari operasi upgrade awal.

Untuk mempelajari lebih lanjut apa yang akan terjadi saat Anda melanjutkan upgrade, silakan melihat Melanjutkan upgrade lonjakan dan upgrade blue-green.

Untuk melanjutkan upgrade, gunakan perintah berikut:

gcloud container clusters upgrade CLUSTER_NAME \
  --node-pool=NODE_POOL_NAME \
  --location=CONTROL_PLANE_LOCATION \
  --cluster-version VERSION

Ganti kode berikut:

  • NODE_POOL_NAME: nama node pool tempat Anda ingin melanjutkan upgrade node pool.
  • CLUSTER_NAME: nama cluster node pool yang ingin Anda lanjutkan upgradenya.
  • CONTROL_PLANE_LOCATION: lokasi (region atau zona) untuk bidang kontrol, seperti us-central1 atau us-central1-a.
  • VERSION: versi target dari upgrade node pool yang dibatalkan.

Untuk informasi selengkapnya, silakan melihat dokumentasi gcloud container clusters upgrade.

Me-roll back upgrade node pool

Anda dapat me-roll back node pool guna mendowngrade node yang diupgrade untuk mengembalikannya ke status aslinya sebelum upgrade node pool dimulai.

Gunakan perintah rollback jika upgrade yang sedang berlangsung dibatalkan, upgrade gagal, atau upgrade tidak selesai karena waktu masa pemeliharaan habis. Atau, jika Anda ingin menentukan versi, ikuti petunjuk untuk mendowngrade node pool.

Untuk mempelajari lebih lanjut apa yang akan terjadi saat Anda me-roll back upgrade node pool, silakan melihat Me-roll back upgrade lonjakan atau Me-roll back upgrade blue-green.

Untuk melakukan roll back upgrade, jalankan perintah berikut:

gcloud container node-pools rollback NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION

Ganti kode berikut:

  • NODE_POOL_NAME: nama node pool yang upgrade node pool-nya akan di-roll back.
  • CLUSTER_NAME: nama cluster yang upgrade node pool-nya akan di-roll back
  • CONTROL_PLANE_LOCATION: lokasi (region atau zona) untuk bidang kontrol, seperti us-central1 atau us-central1-a.

Silakan melihat dokumentasi gcloud container node-pools rollback.

Menyelesaikan upgrade node pool

Jika menggunakan strategi upgrade blue-green, Anda dapat menyelesaikan upgrade node pool selama Fase perendaman, melewati sisa waktu perendamannya.

Untuk mempelajari cara menyelesaikan upgrade node pool, silakan melihat Menyelesaikan upgrade node pool.

Untuk menyelesaikan upgrade saat menggunakan strategi upgrade blue-green, jalankan perintah berikut:

gcloud container node-pools complete-upgrade NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --location=CONTROL_PLANE_LOCATION

Ganti kode berikut:

  • NODE_POOL_NAME: nama node pool yang ingin Anda selesaikan upgradenya.
  • CLUSTER_NAME: nama cluster node pool yang ingin Anda selesaikan upgradenya.
  • CONTROL_PLANE_LOCATION: lokasi (region atau zona) untuk bidang kontrol, seperti us-central1 atau us-central1-a.

Silakan melihat dokumentasi gcloud container node-pools complete-upgrade.

Masalah umum

Jika Anda memiliki objek PodDisruptionBudget yang dikonfigurasi untuk tidak mengizinkan gangguan tambahan, upgrade node mungkin akan gagal untuk mengupgrade ke versi panel kontrol setelah beberapa percobaan. Untuk mencegah kegagalan ini, sebaiknya tingkatkan skala Deployment atau HorizontalPodAutoscaler agar node dapat dihabiskan sambil tetap mematuhi konfigurasi PodDisruptionBudget.

Untuk melihat semua objek PodDisruptionBudget yang tidak mengizinkan gangguan:

kubectl get poddisruptionbudget --all-namespaces -o jsonpath='{range .items[?(@.status.disruptionsAllowed==0)]}{.metadata.name}/{.metadata.namespace}{"\n"}{end}'

Meskipun upgrade otomatis mungkin mengalami masalah, proses upgrade otomatis memaksa node untuk melakukan upgrade. Namun, upgrade memerlukan waktu tambahan untuk setiap node dalam namespace istio-system yang melanggar PodDisruptionBudget.

Pemecahan masalah

Untuk mengetahui informasi tentang pemecahan masalah, lihat Memecahkan masalah upgrade cluster.

Langkah berikutnya