Menangani konflik resource selama pemulihan

Halaman ini menjelaskan cara mengonfigurasi strategi penanganan konflik untuk resource yang memiliki cakupan namespace dan cakupan cluster dalam rencana pemulihan.

Saat memulihkan ke cluster, Anda mungkin mengalami konflik resource dalam skenario berikut:

  • Memulihkan ke cluster yang sudah ada dan sudah memiliki resource yang disediakan.
  • Saat resource Kubernetes dikelola oleh alat, seperti GitOps atau operator.

Pencadangan untuk GKE menyediakan berbagai opsi untuk menentukan penanganan konflik bagi resource cakupan cluster dan namespace yang dapat Anda tentukan dalam rencana pemulihan.

Penanganan konflik pemulihan untuk resource cakupan cluster

Anda dapat mengonfigurasi opsi berikut dalam rencana pemulihan untuk menangani konflik untuk resource cakupan cluster:

  • Simpan resource dalam cluster target (non-destruktif): jika resource dengan nama yang sama ada di cluster target, biarkan seperti apa adanya.
  • Ganti resource dalam cluster target (destruktif): jika resource sudah ada di cluster target, hapus resource tersebut dan pulihkan salinan dari cadangan.

gcloud

Perbarui rencana pemulihan yang ada untuk menangani konflik untuk resource cakupan cluster:

gcloud beta container backup-restore restore-plans update RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --cluster-resource-conflict-policy=CLUSTER_RESOURCE_CONFLICT_POLICY

Ganti kode berikut:

  • RESTORE_PLAN: nama paket pemulihan yang ingin Anda perbarui.
  • PROJECT_ID: ID Google Cloud project Anda.
  • LOCATION: region komputasi untuk resource, misalnya us-central1.
  • 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.

Konsol

Gunakan petunjuk berikut untuk memperbarui kebijakan konflik resource cakupan cluster di konsol Google Cloud :

  1. Di konsol Google Cloud , buka halaman Google Kubernetes Engine.

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

  6. Di bagian Restore configurations, buka bagian Cluster-scoped resources, lalu klik Edit.

  7. Di bagian Tentukan penanganan konflik, pilih opsi penanganan konflik.

  8. Klik Simpan perubahan.

Penanganan konflik pemulihan untuk resource dengan namespace

Dalam paket pemulihan, Anda dapat mengonfigurasi opsi berikut untuk mengelola konflik untuk resource dengan namespace. Anda dapat menentukan penanganan konflik untuk resource dengan namespace pada tingkat berikut:

  • Resource individual
  • Namespace dan ProtectedApplication

Berikut adalah opsi yang tersedia untuk menangani konflik bagi masing-masing resource:

  • Lewati penggabungan (non-destruktif): jika resource tertentu sudah ada, lewati pemulihan resource dari cadangan.
  • Gabungkan volume pengganti (destruktif): jika resource tertentu sudah ada, lewati pemulihan resource tersebut, tetapi ganti volume persisten pokok menggunakan kebijakan pemulihan data volume. Volume gabungan mengganti mencapai pemulihan hanya data.
  • Penggantian gabungan (destruktif): jika resource tertentu sudah ada, ganti resource tersebut dengan resource dari cadangan dan data volume terkait dengan mengikuti kebijakan pemulihan data volume.

Berikut adalah opsi yang tersedia untuk menangani konflik semua resource yang termasuk dalam Namespace dan ProtectedApplication:

  • Gagal karena konflik (non-destruktif): jika namespace atau ProtectedApplication yang ditargetkan untuk dipulihkan dari cadangan yang sudah ada di cluster target, pemulihan akan gagal.
  • Rollback (destruktif): jika cluster target berisi namespace atau ProtectedApplication yang ditargetkan untuk dipulihkan ke cluster, grup resource yang ada akan dihapus sebelum resource baru dipulihkan.

gcloud

Perbarui paket pemulihan yang ada untuk menangani konflik resource dengan namespace:

gcloud beta container backup-restore restore-plans update RESTORE_PLAN \
    --project=PROJECT_ID \
    --location=LOCATION \
    --namespaced-resource-restore-mode=NAMESPACED_RESOURCE_RESTORE_MODE

Ganti kode berikut:

  • RESTORE_PLAN: nama paket pemulihan yang ingin Anda perbarui.
  • PROJECT_ID: ID Google Cloud project Anda.
  • LOCATION: region komputasi untuk resource, misalnya us-central1.
  • NAMESPACED_RESOURCE_RESTORE_MODE: menentukan cara menangani konflik waktu pemulihan untuk resource dengan namespace. Gunakan salah satu opsi berikut:

    • merge-skip-on-conflict: melewati resource individual yang bertentangan.
    • merge-replace-volume-on-conflict: melewati setiap resource yang berkonflik, tetapi mengganti data volume persisten yang mendasarinya.
    • merge-replace-on-conflict: mengganti setiap resource yang bertentangan dan data volume persisten yang mendasarinya.
    • fail-on-conflict: gagal jika ada namespace atau ProtectedApplication yang bertentangan.
    • delete-and-restore: meng-roll back namespace atau ProtectedApplication yang bertentangan.

Konsol

Gunakan petunjuk berikut untuk memperbarui kebijakan konflik resource dengan namespace di konsol Google Cloud :

  1. Di konsol Google Cloud , buka halaman Google Kubernetes Engine.

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

  6. Di bagian Restore configurations, buka bagian Namespaced resources, lalu klik Edit.

  7. Di bagian Tentukan penanganan konflik, pilih opsi penanganan konflik.

  8. Klik Simpan perubahan.

Tabel berikut mencantumkan strategi penanganan konflik yang direkomendasikan untuk skenario umum tertentu:

Scenarios Menggunakan penanganan konflik yang direkomendasikan untuk resource dengan namespace Menggunakan penanganan konflik yang direkomendasikan untuk resource cakupan cluster
Memulihkan ke cluster yang benar-benar baru Gagal karena konflik Simpan resource dalam cluster target
Mengembalikan seluruh namespace atau ProtectedApplication Menghapus dan memulihkan Tidak berlaku
Memulihkan ke cluster yang dikelola GitOps tanpa volume Gabungkan lewati Simpan resource dalam cluster target
Pemulihan hanya data untuk cluster yang dikelola GitOps Menggabungkan volume penggantian Simpan resource dalam cluster target
Me-roll back data volume dan workload yang dipilih Gabungkan penggantian Mengganti resource di cluster target

Langkah berikutnya