Gunakan masa pemeliharaan dan pengecualian pemeliharaan untuk mengontrol kapan pemeliharaan cluster otomatis, seperti upgrade otomatis, dapat dan tidak dapat dilakukan pada cluster Google Kubernetes Engine (GKE) Anda. Sebelum mengonfigurasi kebijakan pemeliharaan ini, pastikan Anda meninjau perubahan yang mematuhi dan tidak mematuhi kebijakan pemeliharaan GKE.
Sebelum memulai
Sebelum memulai, pastikan Anda telah menjalankan 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
gcloud components update
.
Mengonfigurasi masa pemeliharaan
Untuk mengonfigurasi masa pemeliharaan, tentukan waktu mulai, durasi, dan jumlah pengulangannya. Misalnya, Anda dapat mengonfigurasi masa pemeliharaan yang diulang setiap minggu pada hari Senin sampai Jumat selama empat jam setiap hari.
Anda dapat mengonfigurasi masa pemeliharaan menggunakan Konsol Google Cloud atau Google Cloud CLI.
Pertimbangan saat mengonfigurasi masa pemeliharaan
Saat mengonfigurasi masa pemeliharaan, ikuti panduan ini:
- Pahami jenis peristiwa pemeliharaan yang mengikuti dan tidak mengikuti masa pemeliharaan GKE. Untuk mempelajari lebih lanjut, lihat Pemeliharaan otomatis yang mematuhi kebijakan pemeliharaan GKE dan Pemeliharaan otomatis yang tidak mematuhi kebijakan pemeliharaan GKE.
- Anda hanya dapat mengonfigurasi satu periode pemeliharaan untuk cluster, dan mengonfigurasi periode baru akan menimpa periode sebelumnya.
- Anda perlu meluangkan setidaknya 48 jam untuk ketersediaan pemeliharaan dalam 32 hari berturut-turut. Hanya periode ketersediaan tanpa interupsi selama minimal empat jam yang diperhitungkan.
- Saat menggunakan Konsol Google Cloud, waktu selalu ditampilkan menggunakan zona waktu lokal.
- Pengulangan hari dalam seminggu selalu didasarkan pada UTC. Oleh karena itu, sebaiknya tetapkan masa pemeliharaan yang melibatkan pengulangan tersebut sepenuhnya dalam UTC melalui gcloud CLI. Meskipun waktu lokal dapat digunakan saat menetapkan flag, zona waktu tersebut tidak akan disimpan. Misalnya, jika zona waktu Anda adalah UTC+6 dan Anda ingin masa pemeliharaan dimulai pukul 02.00 hari Rabu di zona waktu tersebut, tentukan nilai UTC 20.00 di hari Selasa. Untuk mempelajari lebih lanjut, lihat Zona waktu untuk periode pemeliharaan.
Masa pemeliharaan mencegah penyelesaian update node
Jika cluster Anda tidak dapat menyelesaikan update node, seperti upgrade versi node, dalam masa pemeliharaan terjadwal, kecepatan upgrade akan menjadi lebih lambat, atau penundaan perubahan pada node akan selesai. Anda mungkin perlu bereksperimen dengan konfigurasi untuk menemukan keseimbangan optimal antara kecepatan dan gangguan bagi lingkungan Anda. Faktor-faktor yang dapat memengaruhi kecepatan upgrade meliputi:
- Ketersediaan pemeliharaan rendah (misalnya, masa pemeliharaan singkat).
- Node pool Standard yang besar.
- Konfigurasi strategi upgrade node yang memprioritaskan gangguan minimal versus kecepatan.
- Beberapa pilihan konfigurasi Pod. Lihat Pertimbangan untuk durasi upgrade node untuk mengetahui informasi selengkapnya.
Membuat cluster Standard dengan masa pemeliharaan sederhana
Anda dapat membuat masa pemeliharaan sederhana di gcloud CLI dengan menentukan flag --maintenance-window
. Flag ini memungkinkan Anda menentukan masa pemeliharaan 4 jam harian menggunakan format yang disederhanakan. Untuk membuat cluster Autopilot dengan masa pemeliharaan, gunakan Konsol Google Cloud.
Buat cluster Standard baru dengan masa pemeliharaan sederhana:
gcloud container clusters create CLUSTER_NAME \
--maintenance-window START_TIME
Ganti yang berikut ini:
CLUSTER_NAME
: Nama cluster baru Anda.START_TIME
: Stempel waktu 24 jam dalam waktu UTC, seperti16:00
.
Masa pemeliharaan berjalan setiap hari pada START_TIME
yang ditentukan dan berjalan selama empat jam.
Membuat masa pemeliharaan kustom
Anda dapat membuat masa pemeliharaan yang terjadi pada waktu tertentu dalam seminggu atau sebulan menggunakan parameter tambahan yang dijelaskan di bagian ini.
Misalnya, perintah berikut akan membuat cluster bernama my-cluster
dengan masa pemeliharaan yang diaktifkan pukul 02.00 UTC hari Jumat, 23 Agustus 2024. Masa pemeliharaan ini berulang setiap minggu pada hari Senin dan Jumat, serta berakhir 30 jam kemudian. Masa pemeliharaan pertama dimulai pada hari Jumat 23 Agustus pukul 02.00 dan berakhir pada hari Sabtu 24 Agustus pukul 08.00. Anda dapat mempelajari lebih lanjut cara memformat tanggal dan waktu.
gcloud container clusters create my-cluster \
--maintenance-window-start 2024-08-23T02:00:00Z \
--maintenance-window-end 2024-08-24T08:00:00Z \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=MO,FR'
Untuk skenario lainnya, lihat contoh masa pemeliharaan.
Membuat cluster dengan masa pemeliharaan
Anda dapat membuat cluster Standard baru dengan masa pemeliharaan menggunakan gcloud CLI atau Konsol Google Cloud. Untuk membuat cluster Autopilot baru dengan masa pemeliharaan, gunakan Konsol Google Cloud.
gcloud
Buat cluster Standard baru dengan masa pemeliharaan:
gcloud container clusters create CLUSTER_NAME \
--maintenance-window-start START_TIME \
--maintenance-window-end END_TIME \
--maintenance-window-recurrence RRULE
Ganti yang berikut ini:
CLUSTER_NAME
: Nama cluster baru.START_TIME
: Tanggal dan waktu saat masa pemeliharaan berulang diaktifkan, yang dinyatakan sebagai nilai DTSTART RFC-5545. Setelah itu, masa pemeliharaan akan diulang sesuai denganRRULE
.START_TIME
juga memberikan jam untuk waktu mulai masa pemeliharaan.END_TIME
: Waktu berakhir untuk menghitung durasi masa pemeliharaan, seperti yang dinyatakan oleh jumlah waktu setelahSTART_TIME
, dalam format yang sama. Nilai untukEND_TIME
harus berupa waktu di masa mendatang, sesuai denganSTART_TIME
. Tindakan ini hanya menghitung durasi periode, dan tidak ditetapkan saat periode pemeliharaan berhenti berulang. Masa pemeliharaan hanya berhenti berulang jika dihapus.RRULE
: Pengulangan masa pemeliharaan, seperti yang dinyatakan oleh RRULE RFC-5545. Ini adalah format fleksibel dengan beberapa cara untuk menentukan aturan pengulangan, yang menentukan hari untuk waktu mulai masa pemeliharaan. Misalnya, Anda dapat menentukan pengulangan waktu tertentu dalam seminggu atau sebulan. Jika tanggalEND_TIME
lebih besar dari tanggalSTART_TIME
, masa pemeliharaan akan berlangsung selama beberapa hari. Misalnya, masa pemeliharaan yang dimulai pada hari Minggu akan terus berlanjut ke hari Senin.
Konsol
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Klik add_box Buat.
Konfigurasikan cluster Anda.
Dari panel navigasi, di bagian Clusters, klik Automation.
Centang kotak Enable Maintenance Window.
Pilih waktu mulai dan durasi, lalu pilih hari untuk masa pemeliharaan. Untuk mengedit spesifikasi aturan pengulangan (RRule) secara langsung, pilih Custom editor.
Klik Create.
Mengonfigurasi masa pemeliharaan untuk cluster yang ada
gcloud
Buat atau perbarui masa pemeliharaan untuk cluster yang ada:
gcloud container clusters update CLUSTER_NAME \
--maintenance-window-start START_TIME \
--maintenance-window-end END_TIME \
--maintenance-window-recurrence RRULE
Ganti yang berikut ini:
CLUSTER_NAME
: Nama cluster baru.START_TIME
: Tanggal dan waktu saat masa pemeliharaan berulang diaktifkan, yang dinyatakan sebagai nilai DTSTART RFC-5545. Setelah itu, masa pemeliharaan akan diulang sesuai denganRRULE
.START_TIME
juga memberikan jam untuk waktu mulai masa pemeliharaan.END_TIME
: Waktu berakhir untuk menghitung durasi masa pemeliharaan, seperti yang dinyatakan oleh jumlah waktu setelahSTART_TIME
, dalam format yang sama. Nilai untukEND_TIME
harus berupa waktu di masa mendatang, sesuai denganSTART_TIME
. Tindakan ini hanya menghitung durasi periode, dan tidak ditetapkan saat periode pemeliharaan berhenti berulang. Masa pemeliharaan hanya berhenti berulang jika dihapus.RRULE
: Pengulangan masa pemeliharaan, seperti yang dinyatakan oleh RRULE RFC-5545. Ini adalah format fleksibel dengan beberapa cara untuk menentukan aturan pengulangan, yang menentukan hari untuk waktu mulai masa pemeliharaan. Misalnya, Anda dapat menentukan pengulangan waktu tertentu dalam seminggu atau sebulan. Jika tanggalEND_TIME
lebih besar dari tanggalSTART_TIME
, masa pemeliharaan akan berlangsung selama beberapa hari. Misalnya, masa pemeliharaan yang dimulai pada hari Minggu akan terus berlanjut ke hari Senin.
Konsol
Untuk membuat atau memodifikasi masa pemeliharaan untuk cluster yang ada:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Di daftar cluster, klik nama cluster yang ingin diubah.
Di bagian Automation, klik edit Edit maintenance policy di samping kolom Maintenance window.
Centang kotak Enable Maintenance Window.
Pilih waktu mulai dan durasi, lalu pilih hari untuk masa pemeliharaan. Untuk mengedit RRule secara langsung, pilih Custom editor.
Klik Save Changes.
Menyelesaikan pemeliharaan yang belum selesai secara manual
Jika upgrade atau pemeliharaan otomatis lain memerlukan waktu penyelesaian yang lebih lama daripada masa pemeliharaan, GKE akan mencoba menghentikan tugas pemeliharaan yang sedang berlangsung dan melanjutkannya saat masa pemeliharaan berikutnya berlangsung. Jika upgrade otomatis dibatalkan, dan upgrade otomatis node diaktifkan, node Anda mungkin berada dalam status versi campuran, tetapi cluster Anda akan beroperasi secara normal.
Untuk mengupgrade cluster secara manual, atau membatalkan atau melakukan roll back upgrade sebagian, baca artikel Mengupgrade cluster secara manual.
Menghapus masa pemeliharaan
gcloud
Hapus masa pemeliharaan dari cluster:
gcloud container clusters update CLUSTER_NAME --clear-maintenance-window
Ganti CLUSTER_NAME
dengan nama cluster yang ada.
Konsol
Untuk menghapus masa pemeliharaan:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Di daftar cluster, klik nama cluster yang ingin diubah.
Di bagian Automation, klik edit Edit maintenance policy di samping kolom Maintenance window.
Hapus centang pada kotak Enable Maintenance Window.
Klik Save Changes.
Contoh masa pemeliharaan
Contoh berikut mengilustrasikan beberapa cara yang berbeda untuk mengonfigurasi masa pemeliharaan. Hanya flag yang relevan yang ditampilkan karena flag menggunakan sintaksis yang sama untuk membuat cluster baru atau mengupdate cluster yang ada.
Akhir pekan, mulai 22 Agustus 2026
Dalam contoh ini, perbedaan antara stempel waktu mulai dan akhir adalah dua hari penuh, sehingga masa pemeliharaan berjalan selama akhir pekan, sepanjang hari Sabtu dan Minggu. Jika Anda ingin durasi periode berbeda dari
tepat 48 jam, ubah -start
untuk mengubah kapan periode dimulai, atau
-end
untuk mengubah total durasi periode.
--maintenance-window-start 2026-08-22T00:00:00Z \
--maintenance-window-end 2026-08-24T00:00:00Z \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SA'
Setiap hari pada hari kerja pukul 09.00-17.00 UTC-4
Contoh ini menunjukkan cara memiliki masa pemeliharaan harian, tetapi mengecualikan akhir pekan. Contoh ini menetapkan zona waktu non-UTC.
--maintenance-window-start 2026-09-02T09:00:00-04:00 \
--maintenance-window-end 2026-09-02T17:00:00-04:00 \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR'
Setiap minggu pukul 16.00 selama 8 jam, UTC-7
Jika Anda tidak menentukan zona waktu untuk --maintenance-window-start
, waktu lokal akan digunakan, seperti yang dikonfigurasi di akun Google Cloud Anda. **Konsol Google Cloud selalu menggunakan waktu lokal.**
--maintenance-window-start 2026-08-13T16:00:00-7:00 \
--maintenance-window-end 2026-08-14T00:00:00-7:00 \
--maintenance-window-recurrence 'FREQ=WEEKLY'
Hari kerja pada malam hari
Contoh ini menunjukkan masa pemeliharaan harian yang berjalan semalaman di antara hari kerja dalam zona waktu UTC-7. Dalam contoh ini, pemeliharaan berjalan dari pukul 20.00 di malam hari hingga pukul 04.00 di pagi berikutnya.
--maintenance-window-start 2026-08-15T20:00:00-7:00 \
--maintenance-window-end 2026-08-16T04:00:00-7:00 \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=MO,TU,WE,TH'
Mengonfigurasi pengecualian pemeliharaan
Untuk menyiapkan pengecualian pemeliharaan untuk cluster, Anda perlu menentukan hal berikut:
- Name: Nama pengecualian (opsional).
- Start time: Tanggal dan waktu yang menentukan dimulainya periode pengecualian. Waktu mulai harus sekarang atau di masa mendatang.
- End time: Tanggal dan waktu yang menentukan berakhirnya periode pengecualian. Lihat tabel berikut untuk batasan durasi periode pengecualian untuk setiap cakupan yang tersedia.
- Scope: Cakupan upgrade otomatis yang akan dibatasi. Lihat tabel berikut yang mencantumkan cakupan pengecualian yang tersedia.
Cakupan | Deskripsi | Panjang pengecualian maksimum |
---|---|---|
Tidak ada upgrade (default) | Tidak termasuk semua upgrade patch dan minor. Menghindari gangguan VM di bidang kontrol dan node cluster dari upgrade. | Tidak boleh melebihi 30 hari. |
Tidak ada upgrade minor | Tidak termasuk semua upgrade minor. Gangguan VM dapat terjadi pada bidang kontrol dan node cluster karena upgrade patch. | Untuk cluster yang terdaftar di saluran Cepat, Reguler, atau Stabil, tidak dapat diperpanjang setelah akhir dukungan standar. Untuk cluster yang terdaftar di saluran Extended, tidak dapat diperpanjang setelah akhir dukungan yang diperpanjang versi minor. |
Tidak ada upgrade minor atau node | Tidak termasuk semua upgrade minor dan upgrade node. Menghindari gangguan VM di node cluster dari upgrade. Namun, gangguan dapat terjadi pada bidang kontrol. | Untuk cluster yang terdaftar di saluran Cepat, Reguler, atau Stabil, tidak dapat diperpanjang setelah akhir dukungan standar. Untuk cluster yang terdaftar di saluran Extended, tidak dapat diperpanjang setelah akhir dukungan yang diperpanjang versi minor. |
Membuat cluster dengan pengecualian pemeliharaan
Anda dapat mengonfigurasi pengecualian pemeliharaan saat membuat cluster baru menggunakan Konsol Google Cloud. Tugas ini tidak dapat dilakukan di gcloud CLI.
Untuk membuat cluster baru dengan pengecualian pemeliharaan:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Klik add_box Buat.
Konfigurasikan cluster Anda.
Dari panel navigasi, di bagian Cluster, klik Automation.
Di bagian Maintenance exclusions, klik add Add Maintenance Exclusion.
Pilih Scope, Start time, dan End time.
Klik Create.
Anda dapat melihat contoh pengecualian pemeliharaan untuk Black Friday.
Mengonfigurasi pengecualian pemeliharaan untuk cluster yang ada
Anda dapat mengonfigurasi pengecualian pemeliharaan pada cluster yang ada dengan menggunakan Konsol Google Cloud atau gcloud CLI.
gcloud
Konfigurasi pengecualian pemeliharaan untuk cluster yang ada:
gcloud container clusters update CLUSTER_NAME \
--add-maintenance-exclusion-name EXCLUSION_NAME \
--add-maintenance-exclusion-start START_DATE_TIME \
--add-maintenance-exclusion-end END_DATE_TIME \
--add-maintenance-exclusion-scope SCOPE
Ganti yang berikut ini:
CLUSTER_NAME
: nama cluster Anda.EXCLUSION_NAME
: nama pengecualian pemeliharaan.START_DATE_TIME
: tanggal dan waktu mulai untuk pengecualian.END_DATE_TIME
: tanggal dan waktu berakhir untuk pengecualian.SCOPE
: cakupan upgrade yang akan dikecualikan, nilainya dapat berupa salah satu dari berikut:no_upgrades
,no_minor_upgrades
, atauno_minor_or_node_upgrades
.
Untuk melihat format tanggal dan waktu yang didukung, jalankan gcloud topic datetimes
.
Konsol
Untuk mengonfigurasi pengecualian pemeliharaan untuk cluster yang ada:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Di daftar cluster, klik nama cluster yang ingin diubah.
DI bagian Automation, di samping kolom Maintenance exclusions, klik edit Edit maintenance exclusions.
Di bagian Maintenance exclusions, klik add Add Maintenance Exclusion.
Pilih Scope, Start time, dan End time.
Klik Save Changes.
Menghapus pengecualian pemeliharaan
Anda dapat menghapus pengecualian pemeliharaan menggunakan Konsol Google Cloud atau gcloud CLI.
gcloud
Hapus pengecualian pemeliharaan yang ada:
gcloud container clusters update CLUSTER_NAME \
--remove-maintenance-exclusion EXCLUSION_NAME
Ganti yang berikut ini:
CLUSTER_NAME
: nama cluster yang ada.EXCLUSION_NAME
: nama pengecualian pemeliharaan yang akan dihapus.
Konsol
Untuk menghapus pengecualian pemeliharaan dari cluster yang ada:
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Di daftar cluster, klik nama cluster yang ingin diubah.
DI bagian Automation, di samping kolom Maintenance exclusions, klik edit Edit maintenance exclusions.
Di bagian Maintenance exclusions, klik delete Delete item di samping kolom End time untuk pengecualian yang ingin Anda hapus.
Klik Save Changes.
Untuk melihat semua pengecualian pemeliharaan di cluster, Anda dapat melihat kebijakan pemeliharaan cluster.
Contoh pengecualian pemeliharaan
Contoh berikut mencegah pemeliharaan selama empat hari yang meliputi Black Friday hingga Cyber Monday, yaitu periode penjualan dengan volume tertinggi dalam setahun bagi banyak bisnis retail. Contoh ini menunjukkan cara mencegah masa pemeliharaan agar tidak terjadi dari Black Friday 2021 (26 November 2021) hingga Cyber Monday 2021 (29 November 2021), dari tengah malam Waktu Timur (UTC-5) hingga pukul 23.59.59 Waktu Pasifik (UTC-8).
gcloud container clusters update sample-cluster \
--add-maintenance-exclusion-name black-friday \
--add-maintenance-exclusion-start 2021-11-26T00:00:00-05:00 \
--add-maintenance-exclusion-end 2021-11-29T23:59:59-08:00 \
--add-maintenance-exclusion-scope no_upgrades
Melihat kebijakan pemeliharaan cluster
Untuk melihat kebijakan pemeliharaan cluster, termasuk apakah cluster memiliki masa pemeliharaan dan semua pengecualian pemeliharaannya, gunakan perintah berikut:
gcloud container clusters describe CLUSTER_NAME
Mengidentifikasi cluster tanpa periode pemeliharaan yang dikonfigurasi
GKE mengidentifikasi cluster yang belum Anda konfigurasikan masa pemeliharaannya sehingga Anda dapat memilih periode berulang tempat GKE dapat melakukan pemeliharaan cluster. Sebaiknya konfigurasikan periode pemeliharaan untuk memastikan GKE melakukan upgrade otomatis dan pemeliharaan cluster lainnya yang mematuhi kebijakan pemeliharaan saat paling nyaman untuk lingkungan cluster Anda.
GKE memberikan panduan ini dengan insight dan rekomendasi melalui layanan Pemberi rekomendasi. Untuk mempelajari lebih lanjut cara mengelola insight dan rekomendasi dari Pemberi Rekomendasi, lihat Mengoptimalkan penggunaan GKE dengan insight dan rekomendasi.
Untuk menemukan cluster tanpa periode pemeliharaan yang dikonfigurasi, Anda dapat menggunakan salah satu cara berikut:
- Menggunakan Konsol Google Cloud.
- Gunakan gcloud CLI atau Recommender API, dengan menentukan
subjenis recommender
CLUSTER_MAINTENANCE_WINDOW_AND_EXCLUSIONS
.
Untuk mengetahui petunjuknya, lihat cara melihat insight dan rekomendasi.
Untuk menerapkan rekomendasi ini, konfigurasi masa pemeliharaan.
Pemecahan masalah
Membatasi cakupan pengecualian pemeliharaan hanya dapat diterapkan di saluran rilis
Jika Anda membatasi cakupan upgrade otomatis dalam pengecualian pemeliharaan, cluster harus didaftarkan di saluran rilis. Jika tidak, Anda mungkin akan mengalami error berikut:
ERROR: (gcloud.container.clusters.update) INVALID_ARGUMENT: Cannot update to
STATIC channel since following maintenancePolicy.maintenanceExclusions can only
apply to release channels. Please remove those maintenance exclusions.
ERROR: (gcloud.container.clusters.update) ResponseError: code=400,
message=MaintenancePolicy.maintenanceExclusions["no"] could not apply to cluster
in STATIC channel, only no_upgrades exclusions are allowed in STATIC channel.
Pengecualian pemeliharaan melebihi batas
Anda hanya dapat menentukan maksimum 3 pengecualian pemeliharaan yang mengecualikan semua upgrade (yaitu, cakupan "tanpa upgrade"). Jika tidak, Anda akan menerima error berikut:
ERROR: (gcloud.container.clusters.update) ResponseError: code=400,
message=Number of active maintenance exclusions exceeds limit (3).
Anda hanya dapat menentukan maksimum 20 pengecualian pemeliharaan. Jika tidak, Anda akan menerima error berikut:
ERROR: (gcloud.container.clusters.update) ResponseError: code=400,
message=Number of total maintenance exclusions exceeds limit (20).
Langkah berikutnya
- Pelajari lebih lanjut upgrade cluster dan node.
- Pelajari cara Mengaktifkan upgrade otomatis node.
- Pelajari cara Menerima notifikasi cluster.