Merencanakan serangkaian pemulihan


Halaman ini menjelaskan cara membuat rencana pemulihan Cadangan untuk GKE, yang digunakan untuk memulihkan cadangan Anda di Google Kubernetes Engine (GKE).

Paket pemulihan adalah skenario pemulihan yang telah dikonfigurasi sebelumnya untuk baris cadangan yang sesuai. Rencana pemulihan dapat menetapkan izin bagi administrator untuk menggunakan konfigurasi ini. Pengguna tersebut dapat dengan cepat dan mandiri memulihkan cadangan saat terjadi insiden. Misalnya, data persisten mungkin rusak karena update software pada aplikasi yang di-deploy sehingga membuat namespace aplikasi berada dalam status tidak valid dan memerlukan pemulihan.

Selama pemulihan, Anda dapat secara opsional menerapkan aturan transformasi yang digunakan untuk mencocokkan serangkaian resource dan mengganti nilai atribut saat ini pada resource tersebut dengan nilai baru.

Sebelum memulai

Merencanakan serangkaian cadangan.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk membuat dan mengelola rencana pemulihan, minta administrator untuk memberi Anda Admin Pemulihan untuk GKE Restore (roles/gkebackup.restoreAdmin), yang merupakan bagian dari peran IAM Pencadangan untuk GKE Admin (roles/gkebackup.admin) di project Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

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

Membuat paket pemulihan

Anda dapat membuat paket pemulihan untuk cadangan menggunakan Google Cloud CLI atau Konsol Google Cloud.

gcloud

Untuk membuat paket pemulihan, jalankan perintah berikut:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=NAMESPACED_RESOURCE_RESTORE_MODE \
    --all-namespaces \
    --cluster-resource-conflict-policy=CLUSTER_RESOURCE_CONFLICT_POLICY \
    --cluster-resource-scope-selected-group-kinds=CLUSTER_RESOURCE_SCOPE \
    --volume-data-restore-policy=VOLUME_DATA_RESTORE_POLICY

Ganti kode berikut:

  • RESTORE_PLAN: nama paket pemulihan yang ingin Anda buat.
  • PROJECT_ID: ID project Google Cloud Anda.
  • LOCATION: region komputasi untuk resource, misalnya us-central1. Lihat Tentang lokasi resource. Lokasi harus berada di region yang sama dengan tempat cluster target berada.
  • BACKUP_PLAN: sumber cadangan yang dapat dipulihkan dengan paket pemulihan ini:
    • projects/PROJECT_ID/locations/BACKUP_LOCATION/backupPlans/BACKUP_PLAN_NAME
  • CLUSTER: nama cluster target tempat Anda ingin memulihkan cadangan:

    • Cluster regional: projects/PROJECT_ID/locations/REGION/clusters/CLUSTER_NAME
    • Cluster zona: projects/PROJECT_ID/locations/ZONE/clusters/CLUSTER_NAME
  • NAMESPACED_RESOURCE_RESTORE_MODE: menentukan cara menangani konflik waktu pemulihan untuk resource dengan namespace. Resource namespace selalu dipulihkan dalam grup, baik dengan namespace maupun ProtectedApplication. Gunakan salah satu opsi berikut:

    • delete-and-restore: Jika cluster target berisi grup resource yang sama dengan yang ditargetkan untuk pemulihan ke cluster, grup resource yang ada akan dihapus sebelum resource baru dipulihkan.
    • fail-on-conflict: Jika ada grup resource yang ditargetkan untuk pemulihan dari cadangan sudah ada dalam cluster target, pemulihan akan gagal.
  • --all-namespaces: memulihkan semua resource dengan namespace di cadangan. Atau, tentukan:

    • --excluded-namespaces dengan daftar namespace sebagai NAMESPACE1,NAMESPACE2,... untuk memulihkan semua namespace kecuali yang ada dalam daftar.
    • --selected-applications dengan daftar ProtectedApplications sebagai NAMESPACE1/APP1,NAMESPACE2/APP2,... yang akan dipulihkan.
    • --selected-namespaces dengan daftar namespace sebagai NAMESPACE1,NAMESPACE2,... yang akan dipulihkan.
    • --no-namespaces tidak memulihkan resource dengan namespace di cadangan. Opsi ini tidak dapat ditentukan bersama dengan --cluster-resource-scope-no-group-kinds.

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

  • CLUSTER_RESOURCE_CONFLICT_POLICY: menentukan cara menangani konflik waktu pemulihan untuk resource cluster yang dipilih. Gunakan salah satu opsi berikut:

    • use-existing-version: Jika resource yang dipulihkan sudah ada di cluster target, Pencadangan untuk GKE akan mempertahankan resource yang ada.

    • use-backup-version: Jika resource yang dipulihkan sudah ada di cluster target, Pencadangan untuk GKE akan mengganti resource yang ada dengan resource baru dari cadangan.

  • --cluster-resource-scope-selected-group-kinds: (Opsional) memulihkan resource cluster dengan jenis grup yang dipilih dalam format Group/Kind. CLUSTER_RESOURCE_SCOPE menentukan GroupKind dari resource cluster yang akan dipulihkan. Contoh, apiextension.k8s.io/CustomResourceDefinition,storage.k8s.io/StorageClass

    Atau, tentukan:

    • cluster-resource-scope-all-group-kinds untuk memilih semua jenis grup resource cluster yang akan dipulihkan.
    • cluster-resource-scope-excluded-group-kinds dengan daftar jenis grup resource cluster untuk memulihkan semua jenis grup resource cluster kecuali yang ada dalam daftar.
    • cluster-resource-scope-no-group-kinds. Opsi ini tidak dapat ditentukan bersama dengan --no-namespaces.

    Tidak menentukan salah satu opsi ini tidak akan memulihkan resource cluster.

  • VOLUME_DATA_RESTORE_POLICY: menentukan cara data diisi untuk volume yang dipulihkan. Gunakan salah satu opsi berikut:

    • restore-volume-data-from-backup: PV baru akan dipulihkan menggunakan data cadangan volume yang sesuai di Pencadangan.

    • reuse-volume-handle-from-backup: PV akan disediakan sebelumnya menggunakan handle volume PV asli di Cadangan.

    • no-volume-data-restoration: PV tidak akan dipulihkan. Pemulihan hanya memulihkan PVC yang dipilih dan memprediksi driver penyimpanan yang sesuai untuk menyediakan PV kosong secara dinamis atau mengikatnya ke PV kosong yang telah disediakan dan dibuat secara out-of-band.

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

Membuat RestorePlan untuk semua namespace

Perintah berikut akan membuat RestorePlan untuk memulihkan semua namespace dan resource cluster:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=fail-on-conflict \
    --all-namespaces \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-all-group-kinds \
    --volume-data-restore-policy=restore-volume-data-from-backup

Membuat RestorePlan untuk me-roll back namespace

Perintah berikut akan membuat RestorePlan untuk me-roll back namespace my-ns dari pencadangan:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=delete-and-restore \
    --selected-namespaces=my-ns \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-selected-group-kinds=apiextension.k8s.io/CustomResourceDefinition,storage.k8s.io/StorageClass \
    --volume-data-restore-policy=restore-volume-data-from-backup

Membuat RestorePlan untuk me-roll back ProtectedApplication agar dapat menghubungkan kembali volume asli

Perintah berikut akan membuat RestorePlan untuk me-roll back ProtectedApplication my-ns/my-app agar dapat menghubungkan kembali volume asli:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=delete-and-restore \
    --selected-applications=my-ns/my-app \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-no-group-kinds \
    --volume-data-restore-policy=reuse-volume-handle-from-backup

Membuat RestorePlan untuk memulihkan resource cluster saja

Perintah berikut akan membuat RestorePlan untuk memulihkan semua resource cluster:

gcloud beta container backup-restore restore-plans create RESTORE_PLAN \
    --location=LOCATION \
    --backup-plan=BACKUP_PLAN \
    --cluster=CLUSTER \
    --namespaced-resource-restore-mode=fail-on-conflict \
    --no-namespaces \
    --cluster-resource-conflict-policy=use-existing-version \
    --cluster-resource-scope-all-group-kinds

Konsol

Gunakan petunjuk berikut untuk membuat paket pemulihan 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 pencadangan.

  4. Di bagian Beri nama rencana Anda lalu pilih cluster, selesaikan langkah berikut lalu klik Berikutnya:

    1. Masukkan nama paket pemulihan dan deskripsi opsional.
    2. Pilih rencana pencadangan untuk cluster yang ada dan sesuai dengan cadangan yang ingin Anda pulihkan.
    3. Pilih cluster target tempat Anda ingin memulihkan cadangan.
  5. Di bagian Pilih resource dengan namespace, selesaikan langkah-langkah berikut, lalu klik Berikutnya:

    1. Pilih namespace yang akan dipulihkan:

      • Klik Semua resource dengan namespace untuk memulihkan semua resource dengan namespace dalam cadangan.
        1. Klik Add namespaces di bagian Pengecualian untuk mengecualikan namespace apa pun dalam cadangan.
      • Klik Resource dengan namespace yang dipilih untuk menentukan namespace dalam cadangan yang akan dipulihkan.
      • Klik Aplikasi dilindungi yang dipilih untuk menambahkan resource dengan menentukan namespace dan nama aplikasi.
      • Klik Tidak ada resource dengan namespace agar tidak memulihkan resource dengan namespace.
    2. Pilih cara menangani konflik jika resource dengan namespace dipilih:

      • Klik Gagal karena konflik (non-destruktif) untuk menggagalkan pemulihan jika ada namespace yang ditargetkan untuk dipulihkan dari cadangan yang sudah ada di cluster target.
      • Klik Rollback (destruktif) untuk menghapus namespace yang ada sebelum memulihkan namespace baru jika ada namespace yang ditargetkan untuk pemulihan dari cadangan yang sudah ada di cluster target.
    3. Pilih cara memulihkan data volume, lalu klik Berikutnya:

      • Klik Sediakan volume baru dan pulihkan data volume dari cadangan untuk memulihkan data volume dari cadangan di persistent disk baru.
      • Klik Jangan pulihkan data volume untuk menyediakan volume persisten baru. Jika cluster target berisi volume persisten tidak terikat yang memenuhi persyaratan PersistentVolumeClaim, cluster tersebut akan terikat dengan volume.
      • Klik Gunakan kembali volume yang ada dan berisi data Anda untuk tidak memulihkan data cadangan volume. Setiap PersistentVolumeClaims terikat dengan volume yang merujuk pada persistent disk yang ada.
  6. (Opsional) Di bagian Pilih resource cakupan cluster, selesaikan langkah berikut lalu klik Berikutnya:

    1. Pilih jenis grup yang akan dipulihkan:

      • Klik Semua resource cakupan cluster untuk memulihkan semua resource cakupan cluster dalam cadangan.
        1. Klik Add grouptypes di bagian Pengecualian untuk mengecualikan resource cakupan cluster apa pun dalam cadangan.
      • Klik Resource cakupan cluster yang dipilih untuk menentukan resource cakupan cluster dalam cadangan yang akan dipulihkan. apiextensions.k8s.io/CustomResourceDefinition dan storage.k8s.io/StorageClass dipilih secara default. Klik Add grouptypes untuk menambahkan lebih banyak resource cakupan cluster.
      • Klik Tidak ada resource cakupan cluster untuk memilih tidak memulihkan resource cluster apa pun.
    2. Pilih cara menangani konflik jika resource cakupan cluster dipilih:

      • Klik Simpan resource dalam cluster target untuk melewati resource jika resource sudah ada di cluster target.
      • Klik Ganti resource dalam cluster target untuk menghapus resource jika sudah ada dalam cluster target, dan memulihkan salinan dari cadangan.

  7. (Opsional) Di bagian Add transformasi rules, selesaikan langkah-langkah berikut, lalu klik Next:

    1. Klik Tambahkan aturan dan masukkan deskripsi opsional.
    2. Jika Anda ingin membatasi aturan transformasi ke resource yang cocok dengan kondisi tertentu, lakukan hal berikut di bagian Menentukan kondisi dan tindakan resource:
      1. Klik Kondisi namespace, lalu ketik daftar namespace untuk mencocokkan resource dalam namespace tersebut.
      2. Klik Grouptype condition dan ketik API group type, lalu ketik jenis objek. Kode ini mencocokkan grup API dengan resource dalam jenis tersebut.
      3. Klik Kondisi jalur JSON dan ketik jalur JSON yang mengidentifikasi kolom dalam resource yang cocok tempat transformasi diterapkan.
      4. Ketik nilai baru yang menggantikan nilai saat ini dari atribut yang cocok, atau pilih kotak centang Ganti nilai spesifik (menggunakan ekspresi reguler). Kemudian ketik pola untuk membandingkan dengan nilai saat ini dari resource tersebut.
    3. Klik Simpan perubahan.
  8. Tinjau detail paket pemulihan, lalu klik Buat rencana.

Melihat paket pemulihan

Anda dapat melihat paket pemulihan beserta detailnya dengan menggunakan gcloud CLI atau Konsol Google Cloud.

gcloud

Untuk menampilkan daftar semua rencana pemulihan di dalam project dan lokasi, jalankan perintah berikut:

gcloud beta container backup-restore restore-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 mengetahui daftar lengkap opsi, lihat dokumentasi gcloud beta container backup-restore restore-plans list.

Untuk melihat detail paket pemulihan, jalankan perintah berikut:

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

Konsol

Gunakan petunjuk berikut untuk melihat paket pemulihan dan detailnya 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 Pulihkan Paket.

  4. Luaskan rencana cadangan lalu klik nama paket pemulihan.

  5. Klik tab Detail untuk melihat detailnya.

Memperbarui paket pemulihan

Perbarui paket pemulihan beserta detailnya menggunakan gcloud CLI.

gcloud

Untuk memperbarui paket pemulihan, misalnya dengan menambahkan deskripsi baru, jalankan perintah berikut:

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

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

Konsol

Gunakan petunjuk berikut untuk memperbarui paket pemulihan 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 Pulihkan Paket.

  4. Klik nama paket pemulihan.

  5. Klik tab Details.

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

Menghapus paket pemulihan

Anda dapat menghapus paket pemulihan menggunakan gcloud CLI atau Konsol Google Cloud. Menghapus paket pemulihan juga akan menghapus semua paket pemulihan anak.

gcloud

Untuk menghapus paket pemulihan, jalankan perintah berikut:

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

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

Konsol

Gunakan petunjuk berikut untuk menghapus paket pemulihan 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 Pulihkan Paket.

  4. Luaskan cluster lalu klik nama rencana.

  5. Klik Hapus rencana.

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

Langkah selanjutnya