Mengonfigurasi masa pemeliharaan dan pengecualian


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, seperti 16: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 dengan RRULE. 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 setelah START_TIME, dalam format yang sama. Nilai untuk END_TIME harus berupa waktu di masa mendatang, sesuai dengan START_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 tanggal END_TIME lebih besar dari tanggal START_TIME, masa pemeliharaan akan berlangsung selama beberapa hari. Misalnya, masa pemeliharaan yang dimulai pada hari Minggu akan terus berlanjut ke hari Senin.

Konsol

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

    Buka Google Kubernetes Engine

  2. Klik Buat.

  3. Konfigurasikan cluster Anda.

  4. Dari panel navigasi, di bagian Clusters, klik Automation.

  5. Centang kotak Enable Maintenance Window.

  6. Pilih waktu mulai dan durasi, lalu pilih hari untuk masa pemeliharaan. Untuk mengedit spesifikasi aturan pengulangan (RRule) secara langsung, pilih Custom editor.

  7. 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 dengan RRULE. 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 setelah START_TIME, dalam format yang sama. Nilai untuk END_TIME harus berupa waktu di masa mendatang, sesuai dengan START_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 tanggal END_TIME lebih besar dari tanggal START_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:

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

    Buka Google Kubernetes Engine

  2. Di daftar cluster, klik nama cluster yang ingin diubah.

  3. Di bagian Automation, klik Edit maintenance policy di samping kolom Maintenance window.

  4. Centang kotak Enable Maintenance Window.

  5. Pilih waktu mulai dan durasi, lalu pilih hari untuk masa pemeliharaan. Untuk mengedit RRule secara langsung, pilih Custom editor.

  6. 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:

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

    Buka Google Kubernetes Engine

  2. Di daftar cluster, klik nama cluster yang ingin diubah.

  3. Di bagian Automation, klik Edit maintenance policy di samping kolom Maintenance window.

  4. Hapus centang pada kotak Enable Maintenance Window.

  5. 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:

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

    Buka Google Kubernetes Engine

  2. Klik Buat.

  3. Konfigurasikan cluster Anda.

  4. Dari panel navigasi, di bagian Cluster, klik Automation.

  5. Di bagian Maintenance exclusions, klik Add Maintenance Exclusion.

  6. Pilih Scope, Start time, dan End time.

  7. 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, atau no_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:

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

    Buka Google Kubernetes Engine

  2. Di daftar cluster, klik nama cluster yang ingin diubah.

  3. DI bagian Automation, di samping kolom Maintenance exclusions, klik Edit maintenance exclusions.

  4. Di bagian Maintenance exclusions, klik Add Maintenance Exclusion.

  5. Pilih Scope, Start time, dan End time.

  6. 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:

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

    Buka Google Kubernetes Engine

  2. Di daftar cluster, klik nama cluster yang ingin diubah.

  3. DI bagian Automation, di samping kolom Maintenance exclusions, klik Edit maintenance exclusions.

  4. Di bagian Maintenance exclusions, klik Delete item di samping kolom End time untuk pengecualian yang ingin Anda hapus.

  5. 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