Merencanakan set pencadangan


Halaman ini menjelaskan cara membuat rencana Pencadangan untuk GKE, yang digunakan untuk mencadangkan workload Anda di Google Kubernetes Engine (GKE).

Rencana cadangan menyediakan fungsi konfigurasi, lokasi, dan pengelolaan untuk serangkaian cadangan. Rencana cadangan berisi konfigurasi cadangan yang mencakup cluster sumber, pemilihan workload yang akan dicadangkan, dan region tempat penyimpanan artefak cadangan yang dihasilkan berdasarkan rencana ini.

Anda dapat membuat satu atau beberapa rencana cadangan untuk setiap cluster. Ada dua alasan utama mengapa Anda memerlukan lebih dari satu rencana cadangan untuk satu cluster:

  • Anda ingin menyimpan artefak cadangan di beberapa region. Dalam hal ini, buat rencana cadangan untuk setiap region tempat Anda ingin menyimpan cadangan.
  • Anda ingin membuat partisi cadangan cluster, misalnya:

    • Dibandingkan satu cadangan berukuran sangat besar yang diambil pada satu waktu dalam sehari, Anda ingin beberapa cadangan yang lebih kecil didistribusikan sepanjang hari.
    • Anda ingin lebih sering mencadangkan beberapa bagian cluster daripada yang lain (seperti cadangan harian untuk beberapa namespace dan cadangan per jam untuk sebagian yang lain).

Sebaiknya setiap cluster memiliki minimal satu rencana cadangan.

Pencadangan untuk GKE tidak mendukung pencadangan cluster dari satu project ke project lain. Anda hanya dapat membuat rencana cadangan ke cluster dalam project yang sama tempat cluster dibuat.

Anda dapat membuat rencana cadangan dengan metode penjadwalan cadangan untuk membuat cadangan secara otomatis: penjadwalan cerdas atau penjadwalan cron. Sebaiknya gunakan penjadwalan cerdas untuk rencana pencadangan Anda. Tindakan ini memastikan pencadangan dibuat secara otomatis untuk memenuhi persyaratan Tujuan Poin Pemulihan (RPO). Untuk informasi selengkapnya, lihat Pembuatan dan penghapusan pencadangan otomatis.

Jika tidak ingin membuat rencana pencadangan dengan metode penjadwalan pencadangan, Anda harus mencadangkan secara manual beban kerja Anda. Setelah membuat rencana cadangan, Anda dapat membuat cadangan dari rencana tersebut.

Sebelum memulai

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan guna membuat dan mengelola rencana pencadangan, minta administrator untuk memberi Anda Backup for GKE Backup Admin (roles/gkebackup.backupAdmin), yang merupakan subset dari peran IAM Backup for GKE Admin (roles/gkebackup.admin) di project Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Buat rencana cadangan

Buat rencana cadangan menggunakan gcloud CLI atau konsol Google Cloud.

gcloud

Untuk membuat rencana cadangan dengan jadwal, jalankan perintah berikut:

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --encryption-key=ENCRYPTION_KEY \
    --target-rpo-minutes=TARGET_RPO_MINUTES \
    --exclusion-windows-file=EXCLUSION_WINDOWS_FILE \
    --cron-schedule=CRON_SCHEDULE \
    --backup-retain-days=RETAIN_DAYS \
    --backup-delete-lock-days=DELETE_LOCK_DAYS \
    --locked

Ganti kode berikut:

  • BACKUP_PLAN: nama rencana cadangan yang ingin Anda buat.
  • PROJECT_ID: ID project Google Cloud Anda.
  • LOCATION: region komputasi untuk resource, misalnya us-central1. Lihat Tentang lokasi resource.
  • CLUSTER: jalur relatif ke cluster:
    • Cluster regional: projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME
    • Cluster zona: projects/PROJECT_ID/locations/ZONE/clusters/CLUSTER_NAME
  • CLUSTER_NAME: nama cluster yang akan dicadangkan.
  • --all-namespaces: mencadangkan semua namespace untuk cluster.

    Atau, tentukan:

    • --selected-applications dengan daftar ProtectedApplications sebagai NAMESPACE1/APP1,NAMESPACE2/APP2,... yang akan dicadangkan.
    • --selected-namespaces dengan daftar namespace sebagai NAMESPACE1,NAMESPACE2,... yang akan dicadangkan.

    Anda harus menentukan salah satu opsi ini saat membuat rencana cadangan.

  • --include-secrets: argumen opsional untuk menyertakan resource Secret jika berada dalam cakupan cadangan.

  • --include-volume-data: argumen opsional untuk menyertakan data volume persisten dalam cadangan. Jangan tetapkan argumen ini jika Anda ingin membuat volume kosong selama pemulihan.

  • ENCRYPTION_KEY: argumen opsional untuk menentukan jalur ke kunci enkripsi yang dikelola pelanggan. Lihat Tentang enkripsi CMEK.

  • TARGET_RPO_MINUTES: argumen yang diperlukan jika EXCLUSION_WINDOWS_FILE ditetapkan. Tentukan RPO target dalam menit. Penjadwalan cerdas menggunakan nilai ini untuk membuat cadangan secara otomatis. Minimumnya adalah 60 menit (1 jam) dan maksimumnya adalah 86.400 menit (60 hari). Anda tidak dapat menetapkan TARGET_RPO_MINUTES dan CRON_SCHEDULE secara bersamaan dalam satu rencana pencadangan.

  • EXCLUSION_WINDOWS_FILE: argumen opsional untuk menentukan periode waktu saat pencadangan tidak dapat dilakukan. Semua waktu ditafsirkan sebagai UTC. Argumen ini hanya tersedia jika TARGET_RPO_MINUTES ditetapkan.

  • CRON_SCHEDULE: argumen opsional untuk menentukan jadwal cron yang otomatis membuat cadangan dan mendukung sintaksis cron standar. Misalnya, "10 3 * * *" membuat cadangan pada pukul 03.10 setiap hari. Semua waktu ditafsirkan sebagai UTC. Interval minimum antar-cadangan terjadwal adalah 10 menit. Anda tidak dapat menetapkan CRON_SCHEDULE dan TARGET_RPO_MINUTES secara bersamaan dalam satu rencana cadangan.

  • RETAIN_DAYS: argumen yang diperlukan jika TARGET_RPO_MINUTES atau CRON_SCHEDULE ditetapkan. Tentukan jumlah hari untuk mempertahankan cadangan. Cadangan untuk rencana ini akan otomatis dihapus setelah periode retensi data berakhir.

  • DELETE_LOCK_DAYS: argumen opsional untuk menentukan jumlah hari cadangan tidak dapat dihapus. Jika nilai ini ditetapkan, cadangan yang dibuat untuk rencana tersebut tidak dapat dihapus (baik secara otomatis maupun secara manual) hingga periode aktif tersebut berakhir.

  • --locked: argumen opsional untuk mengunci kebijakan retensi untuk rencana cadangan.

Untuk daftar lengkap opsi, lihat dokumentasi gcloud beta container backup-restore backup-plans create.

Membuat rencana pencadangan untuk semua namespace dengan RPO 24 jam dan satu periode pengecualian

Buat file window.yaml, yang berisi array YAML dari exclusionWindows.

exclusionWindows:
- startTime:
    hours: 1
    minutes: 0
  duration: "3600s"
  singleOccurrenceDate:
    day: 1
    month: 3
    year: 2024

Perintah berikut akan membuat rencana pencadangan untuk semua namespace dengan target RPO 24 jam dan tidak ada pencadangan yang diizinkan dari pukul 01.00 hingga 02.00 pada 1 Maret 2024. Cadangan disimpan selama tujuh hari dan dikunci selama tiga hari setelah pembuatan:

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --target-rpo-minutes=1440 \
    --exclusion-windows-file=window.yaml \
    --backup-retain-days=7 \
    --backup-delete-lock-days=3 \
    --locked

Membuat rencana pencadangan untuk semua namespace dengan RPO 2 jam dan beberapa periode pengecualian

Buat file window.yaml, yang berisi array YAML dari exclusionWindows: satu periode mingguan dan satu periode kemunculan tunggal.

exclusionWindows:
- startTime:
    hours: 15
    minutes: 0
  duration: "5400s"
  daysOfWeek:
    daysOfWeek:
    - MONDAY
    - FRIDAY
- startTime:
    hours: 1
    minutes: 0
  duration: "3600s"
  singleOccurrenceDate:
    day: 1
    month: 3
    year: 2024

Perintah berikut membuat rencana pencadangan untuk semua namespace dengan RPO target 2 jam dan tidak mengizinkan pencadangan dari pukul 01.00 hingga 02.00 pada 1 Maret 2024 dan pukul 15.00 hingga 16.30 setiap hari Senin dan Jumat. Cadangan disimpan selama tujuh hari dan dikunci selama tiga hari setelah pembuatan:

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --target-rpo-minutes=120 \
    --exclusion-windows-file=window.yaml \
    --backup-retain-days=7 \
    --backup-delete-lock-days=3 \
    --locked

Membuat rencana pencadangan untuk semua namespace dengan jadwal cron harian

Perintah berikut membuat rencana pencadangan untuk menjadwalkan pencadangan harian bagi semua namespace pada pukul 05.20 setiap hari. Cadangan disimpan selama tujuh hari dan dikunci selama tiga hari setelah pembuatan:

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --all-namespaces \
    --include-secrets \
    --include-volume-data \
    --cron-schedule="20 5 * * *" \
    --backup-retain-days=7 \
    --backup-delete-lock-days=3 \
    --locked

Membuat rencana pencadangan untuk namespace yang dipilih dengan jadwal cron per jam

Perintah berikut membuat rencana pencadangan untuk menjadwalkan pencadangan per jam untuk namespace yang dipilih ( my-ns ) pada menit ke-15 setiap jam. Cadangan dipertahankan selama tiga hari setelah pembuatan:

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --selected-namespaces=my-ns \
    --include-secrets \
    --include-volume-data \
    --cron-schedule="15 * * * *" \
    --backup-retain-days=3

Membuat rencana cadangan untuk ProtectedApplication yang dipilih

Perintah berikut membuat rencana cadangan untuk memilih ProtectedApplication ( my-ns/my-app ).

gcloud beta container backup-restore backup-plans create BACKUP_PLAN \
    --location=LOCATION \
    --cluster=CLUSTER \
    --selected-applications=my-ns1/my-app1,my-ns2/my-app2 \
    --include-secrets \
    --include-volume-data

Konsol

Gunakan petunjuk berikut untuk membuat rencana pencadangan di konsol Google Cloud:

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

    Buka Google Kubernetes Engine

  2. Di menu navigasi, klik Pencadangan untuk GKE.

  3. Klik Buat rencana cadangan.

  4. Di bagian Detail rencana, lakukan hal berikut:

    1. Pilih cluster yang akan dicadangkan.
    2. Masukkan nama rencana cadangan dan deskripsi opsional.
    3. Pilih lokasi untuk cadangan.
  5. Untuk membuat cadangan secara otomatis, di bagian Backup schedule, centang kotak Enable backup schedule, lalu pilih salah satu metode berikut:

    1. Pilih Jadwal cerdas, lalu lakukan tindakan berikut:

      1. Di kolom Target RPO, masukkan RPO untuk rencana pencadangan, lalu pilih nilai RPO dalam Menit, Jam, atau Hari dari menu drop-down.
      2. Opsional: Centang kotak Tentukan satu periode pengecualian pencadangan berulang untuk pengecualian pencadangan.
        1. Pilih Harian atau Mingguan dari jendela pengecualian.
        2. Di bagian Repeats on, pilih hari dalam seminggu yang akan dikecualikan dari rencana pencadangan. Kolom ini hanya ditampilkan untuk periode pengecualian mingguan.
        3. Di kolom Window start time, masukkan waktu mulai untuk pengecualian paket pencadangan.
        4. Di kolom Durasi, masukkan durasi pengecualian rencana pencadangan, lalu pilih Detik, Menit, atau Jam dari menu drop-down.
      3. Opsional: Jika Anda ingin membuat satu atau beberapa periode pengecualian pencadangan satu kali, centang kotak Tentukan satu atau beberapa tanggal pengecualian pencadangan, lalu lakukan tindakan berikut:
        1. Klik Tambahkan tanggal pengecualian.
        2. Di kolom Tanggal dan waktu mulai untuk periode pengecualian, klik ikon , lalu pilih Tanggal dan Waktu untuk pencadangan.
        3. Di kolom Durasi, masukkan durasi pengecualian rencana pencadangan, lalu pilih Detik, Menit, atau Jam dari menu drop-down.
    2. Pilih Cron schedule dan masukkan CRON expression menggunakan sintaksis cron standar. Misalnya, 10 3 * * * membuat cadangan pada pukul 03.10 setiap hari. Interval minimum antar-pencadangan terjadwal adalah 10 menit.

  6. Di bagian Retention policy, lakukan tindakan berikut:

    1. Tetapkan jumlah hari untuk meretensi cadangan sebelum cadangan otomatis dihapus.
    2. Tetapkan jumlah hari cadangan tidak dapat dihapus.
    3. Untuk mengunci kebijakan retensi, klik ikon gembok untuk mengubah kunci dari Nonaktif ke Aktif.
  7. Di bagian Configure backup scope and encryption, lakukan hal berikut:

    1. Pilih cakupan untuk rencana cadangan:

      • Klik Seluruh cluster (termasuk semua namespace) untuk mencadangkan semua resource dengan namespace dalam cadangan.
      • Klik namespace yang dipilih dalam cluster ini untuk memilih namespace yang ingin disertakan dalam rencana cadangan.
      • Klik Aplikasi yang dilindungi yang dipilih dalam cluster ini untuk menambahkan resource dengan menentukan namespace dan nama aplikasi.
    2. Klik kotak centang Secrets untuk menyertakan resource Kubernetes Secret.

    3. Klik kotak centang Data volume persisten jika Anda menginginkan data volume dalam cadangan. Jika memilih untuk melewati data volume, Anda tidak dapat memulihkan data volume selama pemulihan. Namun, Anda akan memiliki dua opsi untuk memilih data volume saat memulihkan: Menyediakan volume baru atau Menggunakan kembali volume yang ada.

    4. Untuk mengaktifkan enkripsi CMEK, Anda harus terlebih dahulu memberikan akses ke kunci CMEK yang sesuai (lihat Tentang enkripsi CMEK).

      1. Klik kotak centang Gunakan kunci enkripsi yang dikelola pelanggan untuk memilih kunci.
  8. Tinjau detail rencana cadangan dan klik Buat rencana.

Terraform

Buat resource google_gke_backup_backup_plan

resource "google_gke_backup_backup_plan" "basic" {
   name = "BACKUP_PLAN"
   cluster = google_container_cluster.CLUSTER.id
   location = "LOCATION"
   retention_policy {
     backup_retain_days = 7
   }
   backup_schedule {
     cron_schedule = "17 3 * * *"
   }
   backup_config {
     include_volume_data = true
     include_secrets = true
     all_namespaces = true
   }
}

Ganti kode berikut:

  • BACKUP_PLAN: nama rencana cadangan yang ingin Anda buat.
  • CLUSTER: nama resource google_container_cluster.
  • LOCATION - region tempat Anda ingin menyimpan cadangan.

Untuk informasi selengkapnya, lihat gke_backup_backup_plan.

Melihat rencana cadangan

Lihat rencana cadangan dan detailnya menggunakan gcloud CLI atau konsol Google Cloud.

gcloud

Untuk mencantumkan semua rencana cadangan dalam project dan region, jalankan perintah berikut:

gcloud beta container backup-restore backup-plans list \
    --project=PROJECT_ID \
    --location=LOCATION

Khusus untuk perintah list, Anda dapat memberikan - sebagai nilai untuk parameter apa pun kecuali PROJECT_ID. Nilai - berfungsi sebagai karakter pengganti. Nilai - adalah default untuk parameter apa pun jika Anda tidak menentukan opsi command line atau menetapkan properti.

Untuk daftar lengkap opsi, lihat dokumentasi gcloud beta container backup-restore backup-plans list.

Untuk melihat detail rencana cadangan, jalankan perintah berikut:

gcloud beta container backup-restore backup-plans describe BACKUP_PLAN \
     --project=PROJECT_ID \
     --location=LOCATION

Untuk daftar lengkap opsi, lihat dokumentasi gcloud beta container backup-restore backup-plans describe.

Konsol

Gunakan petunjuk berikut untuk melihat rencana pencadangan di konsol Google Cloud:

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

    Buka Google Kubernetes Engine.

  2. Di menu navigasi, klik Pencadangan untuk GKE.

  3. Klik tab Rencana Cadangan.

  4. Luaskan cluster dan klik nama rencana.

  5. Klik tab Detail untuk melihat detail rencana.

Memperbarui rencana cadangan

Anda dapat memperbarui informasi rencana cadangan, seperti deskripsi, cakupan cadangan, mode cadangan, enkripsi, atau jadwal cadangan. Anda juga dapat mengubah kebijakan retensi data rencana cadangan, seperti berapa lama cadangan akan dipertahankan atau periode waktu saat cadangan tidak dapat dihapus.

Perbarui rencana pencadangan menggunakan gcloud CLI atau konsol Google Cloud.

gcloud

Untuk memperbarui rencana cadangan, misalnya dengan menambahkan deskripsi baru, jalankan perintah berikut:

gcloud beta container backup-restore backup-plans update BACKUP_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --description=DESCRIPTION

Untuk daftar lengkap opsi, lihat dokumentasi gcloud beta container backup-restore backup-plans update.

Konsol

Gunakan petunjuk berikut untuk memperbarui rencana pencadangan di konsol Google Cloud:

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

    Buka Google Kubernetes Engine

  2. Di menu navigasi, klik Pencadangan untuk GKE.

  3. Klik tab Rencana Cadangan.

  4. Luaskan cluster lalu klik nama rencana.

  5. Klik tab Detail untuk mengedit detail rencana.

  6. Klik Edit untuk mengedit bagian rencana, lalu klik Simpan perubahan.

Menjeda jadwal pencadangan

Anda dapat menjeda jadwal pencadangan. Selama jadwal dijeda, cadangan otomatis tidak akan dibuat. Anda masih dapat membuat cadangan secara manual.

gcloud

Untuk menjeda jadwal cadangan, jalankan perintah berikut:

gcloud beta container backup-restore backup-plans update BACKUP_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --paused

Untuk daftar lengkap opsi, lihat dokumentasi gcloud beta container backup-restore backup-plans update.

Konsol

Gunakan petunjuk berikut untuk menjeda jadwal pencadangan di konsol Google Cloud:

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

    Buka Google Kubernetes Engine

  2. Di menu navigasi, klik Pencadangan untuk GKE.

  3. Klik tab Rencana Cadangan.

  4. Luaskan cluster lalu klik nama rencana.

  5. Klik Jeda Jadwal, lalu klik Jeda Jadwal dalam dialog konfirmasi.

Menghapus rencana cadangan

Anda dapat menghapus rencana cadangan menggunakan gcloud CLI atau konsol Google Cloud. Anda tidak dapat menghapus rencana cadangan jika rencana berisi cadangan apa pun.

gcloud

Untuk menghapus rencana cadangan, jalankan perintah berikut:

gcloud beta container backup-restore backup-plans delete BACKUP_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION

Untuk daftar lengkap opsi, lihat dokumentasi gcloud beta container backup-restore backup-plans delete.

Konsol

Gunakan petunjuk berikut untuk menghapus rencana pencadangan di konsol Google Cloud:

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

    Buka Google Kubernetes Engine

  2. Di menu navigasi, klik Pencadangan untuk GKE.

  3. Klik tab Rencana Cadangan.

  4. Luaskan cluster lalu klik nama rencana.

  5. Klik Hapus rencana.

  6. Ketik nama rencana cadangan, lalu klik Hapus rencana cadangan di dialog konfirmasi.

Langkah berikutnya