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:
- Cluster Autopilot: Mengupgrade versi bidang kontrol.
- Cluster standar: Mengupgrade versi panel kontrol dan versi node pool.
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.
- Pastikan Anda sudah memiliki cluster Autopilot atau Standard. Untuk membuat cluster baru, lihat Membuat cluster Autopilot.
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:
- Downgrade patch bidang kontrol: untuk mengurangi upgrade panel kontrol cluster yang gagal, Anda dapat mendowngrade panel kontrol ke rilis patch sebelumnya jika versi tersebut adalah rilis patch sebelumnya dalam versi minor yang sama. Misalnya, jika bidang kontrol cluster Anda menjalankan GKE 1.33.5-gke.1080000, Anda dapat mendowngrade bidang kontrol ke 1.33.4-gke.1350000, jika versi tersebut masih tersedia.
- Rollback selama upgrade minor bidang kontrol dua langkah (Pratinjau): Anda hanya dapat mendowngrade bidang kontrol cluster Kubernetes ke versi minor yang lebih lama setelah upgrade biner dari upgrade minor bidang kontrol dua langkah dengan keamanan rollback. Jika GKE telah menyelesaikan langkah kedua dari upgrade dua langkah—upgrade versi yang di-emulasi—Anda tidak dapat melakukan roll back ke versi minor sebelumnya.
- Downgrade node pool: untuk memitigasi upgrade node pool yang tidak berhasil, Anda dapat mendowngrade node pool ke rilis patch atau versi minor sebelumnya. Pastikan Anda tidak mendowngrade node ke versi yang lebih dari dua versi minor sebelum versi panel kontrol cluster.
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:
Buka halaman Google Kubernetes Engine di konsol Cloud de Confiance .
Klik nama cluster.
Di bagian Dasar-dasar cluster, klik edit Upgrade Tersedia di samping Versi.
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:
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.
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, sepertius-central1atauus-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 untukgcloud topic datetimes. Misalnya, gunakan2d1huntuk 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:
- Untuk melihat detail tentang upgrade, ikuti petunjuk untuk mendapatkan informasi upgrade di tingkat cluster.
- Menggunakan notifikasi cluster. GKE mengirimkan notifikasi
UpgradeEventsaat upgrade biner dimulai, danUpgradeInfoEventjenis Operasi upgrade selesai saat upgrade biner selesai dan waktu perendaman dimulai. - Untuk melihat detail tentang cluster Anda, termasuk tentang upgrade yang sedang berlangsung,
jalankan perintah
gcloud container clusters describe. - Lihat log yang relevan di Cloud Logging.
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:
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
rollbackSafeUpgradeStatusdalam output. Di bagian tersebut, simpanpreviousVersionuntuk variabelVERSIONdi 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.
- Anda dapat membatalkan jika ada bagian
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 --masterVERSIONharus 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
- Tetapkan pengecualian pemeliharaan sebelum melakukan downgrade untuk mencegah GKE mengupgrade otomatis bidang kontrol setelah Anda mendowngradenya.
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.
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.
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:
Buka halaman Google Kubernetes Engine di konsol Cloud de Confiance .
Klik nama cluster.
Di halaman Cluster details, klik tab Nodes.
Di bagian Node Pools, klik nama node pool yang ingin Anda upgrade.
Klik edit Edit.
Klik Change di bagian Node version.
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, sepertius-central1atauus-central1-a.VERSION: versi Kubernetes tempat node diupgrade. Misalnya,--cluster-version=1.34.1-gke.1293000ataucluster-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.
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.
- Tetapkan pengecualian pemeliharaan untuk cluster guna mencegah agar node pool tidak diupgrade secara otomatis oleh GKE setelah didowngrade.
- 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, sepertius-central1atauus-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.
Mendapatkan ID operasi upgrade:
gcloud container operations list \ --location=CONTROL_PLANE_LOCATIONMembatalkan 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, sepertius-central1atauus-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 backCONTROL_PLANE_LOCATION: lokasi (region atau zona) untuk bidang kontrol, sepertius-central1atauus-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, sepertius-central1atauus-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
- Pelajari strategi upgrade node.
- Pelajari upgrade cluster.
- Pelajari upgrade otomatis node.
- Baca tentang masa pemeliharaan dan pengecualian pemeliharaan.