Menangani konflik resource selama pemulihan


Halaman ini menjelaskan cara mengkonfigurasi strategi penanganan konflik untuk dengan namespace dan resource cakupan cluster dalam rencana pemulihan.

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

  • Memulihkan ke cluster yang ada dan resource yang telah disediakan.
  • Jika resource Kubernetes dikelola oleh alat, seperti GitOps atau operator.

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

Memulihkan penanganan konflik untuk resource cakupan cluster

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

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

gcloud

Perbarui rencana pemulihan yang ada untuk menangani konflik pada 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 rencana pemulihan yang ingin Anda perbarui.
  • PROJECT_ID: ID project Google Cloud 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 menyimpan resource yang ada.
    • use-backup-version: jika resource yang dipulihkan sudah ada di cluster target, Pencadangan untuk GKE 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 rencana pemulihan.

  5. Klik tab Detail.

  6. Di bagian Pulihkan konfigurasi, buka bagian Resource cakupan cluster, lalu klik Edit.

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

  8. Klik Simpan perubahan.

Memulihkan penanganan konflik untuk resource dengan namespace

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

  • Resource individual
  • Namespace dan ProtectedApplication

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

  • Penggabungan lewati (tidak merusak): jika resource tertentu sudah ada, melewati pemulihan sumber daya dari cadangan.
  • Gabungkan volume penggantian (destruktif): jika resource tertentu sudah ada, melewati pemulihan resource, tetapi mengganti volume persisten yang mendasarinya menggunakan kebijakan pemulihan data volume. Volume penggantian gabungan mencapai untuk pemulihan data-saja.
  • Gabungkan penggantian (destruktif): jika resource tertentu sudah ada, ganti resource itu dengan resource dari cadangan dan volume terkait data dengan mengikuti kebijakan pemulihan data volume.

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

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

gcloud

Memperbarui rencana pemulihan yang ada untuk menangani konflik pada 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 rencana pemulihan yang ingin Anda perbarui.
  • PROJECT_ID: ID project Google Cloud 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: lewati masing-masing resource yang mengalami konflik.
    • merge-replace-volume-on-conflict: lewati setiap sumber daya yang berkonflik, tetapi menggantikan data volume persisten yang mendasarinya.
    • merge-replace-on-conflict: mengganti yang satu per satu resource yang bertentangan dan data volume persisten yang mendasarinya.
    • fail-on-conflict: gagal pada namespace atau ProtectedApplication.
    • delete-and-restore: melakukan roll back namespace atau ProtectedApplication.

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 rencana pemulihan.

  5. Klik tab Detail.

  6. Di bagian Pulihkan konfigurasi, buka bagian Resource dengan namespace, 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
Pulihkan ke cluster baru Gagal saat konflik Mempertahankan resource di cluster target
Melakukan roll back seluruh namespace atau ProtectedApplication Hapus dan pulihkan Tidak berlaku
Memulihkan ke cluster terkelola GitOps tanpa volume Gabungkan lewati Mempertahankan resource di cluster target
Pemulihan khusus data untuk cluster yang dikelola GitOps Gabungkan volume penggantian Mempertahankan resource di cluster target
Melakukan roll back data workload dan volume yang dipilih Gabungkan penggantian Mengganti resource di cluster target

Langkah selanjutnya