Mengaktifkan mode permisif pada rencana pencadangan


Halaman ini menjelaskan cara mengaktifkan mode permisif pada paket pencadangan.

Selama eksekusi pencadangan, jika Pencadangan untuk GKE mendeteksi kondisi yang kemungkinan menyebabkan pemulihan gagal, pencadangan itu sendiri akan gagal. Alasan kegagalan diberikan di kolom state_reason cadangan. Di konsol Google Cloud, kolom ini disebut sebagai Alasan status.

Jika Anda mengaktifkan mode permisif, deskripsi masalah masih diberikan di kolom Alasan status, tetapi pencadangan tidak akan gagal. Anda dapat mengaktifkan perilaku ini jika mengetahui masalahnya dan siap menggunakan solusi pada waktu pemulihan.

Berikut adalah contoh pesan error yang mungkin Anda lihat di kolom Alasan status cadangan yang menyarankan untuk mengaktifkan mode permisif: If you cannot implement the recommended fix, you may create a new backup with Permissive Mode enabled.

gcloud

Mengaktifkan mode permisif:

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

Ganti kode berikut:

Konsol

Gunakan petunjuk berikut untuk mengaktifkan mode permisif 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 Rencana cadangan.

  4. Luaskan cluster lalu klik nama rencana.

  5. Klik tab Detail untuk mengedit detail rencana.

  6. Klik Edit untuk mengedit bagian dengan Mode pencadangan.

  7. Klik kotak centang Mode permisif, lalu klik Simpan perubahan.

Terraform

Perbarui resource google_gke_backup_backup_plan yang ada.

resource "google_gke_backup_backup_plan" "NAME" {
   ...
   backup_config {
     permissive_mode = true
     ...
   }
}

Ganti kode berikut:

  • NAME: nama google_gke_backup_backup_plan yang ingin Anda perbarui.

Untuk informasi selengkapnya, lihat gke_backup_backup_plan.

Memecahkan masalah kegagalan pencadangan

Tabel berikut memberikan penjelasan dan tindakan yang direkomendasikan untuk berbagai pesan kegagalan pencadangan yang ditampilkan di kolom Alasan status pencadangan.

Pesan kegagalan pencadangan Deskripsi pesan dan alasan kegagalan Tindakan yang disarankan

CustomResourceDefinitions "..." have invalid schemas

Deskripsi: Custom Resource Definition (CRD) di cluster awalnya diterapkan sebagai apiextensions.k8s.io/v1beta1 dan tidak memiliki skema struktural yang diperlukan di apiextensions.k8s.io/v1.

Alasan: Pencadangan untuk GKE tidak dapat menentukan skema struktur secara otomatis. Memulihkan CRD di cluster Kubernetes v1.22+, tempat apiextensions.k8s.io/v1beta1 tidak tersedia, menyebabkan pemulihan gagal. Kegagalan ini terjadi saat memulihkan resource kustom yang ditentukan oleh CRD.
Sebaiknya gunakan opsi berikut:
  • Jika Anda mengelola CRD, ikuti langkah-langkah di dokumentasi Kubernetes untuk menentukan skema struktural untuk CRD Anda.
  • Jika CRD dikelola GKE, Anda dapat memanggil kubectl delete crd jika tidak ada resource yang ditayangkan oleh CRD. Jika sudah ada resource yang ditayangkan oleh CRD, Anda dapat mengaktifkan mode permisif dengan pemahaman tentang perilaku pemulihan. Untuk rekomendasi tentang CRD umum, lihat dokumentasi.
  • Jika CRD tersebut adalah CRD pihak ketiga, lihat dokumentasi yang relevan untuk migrasi ke apiextensions.k8s.io/v1.

Jika mode permisif diaktifkan, CRD tanpa skema struktural tidak akan dicadangkan di cluster Kubernetes v1.22+. Agar berhasil memulihkan cadangan tersebut, Anda harus mengecualikan resource yang ditayangkan oleh CRD dari pemulihan atau membuat CRD di cluster target sebelum memulai pemulihan.

PersistentVolumeClaims "..." are bound to PersistentVolumes of unsupported types "..." and cannot be backed up

Deskripsi: Di cluster sumber, PVC terikat ke PV yang bukan volume Persistent Disk.

Alasan: Pencadangan untuk GKE hanya mendukung pencadangan data volume Persistent Disk. PVC Non-Persistent Disk yang dipulihkan menggunakan kebijakan Sediakan volume baru dan pulihkan data volume dari cadangan tidak akan memulihkan data volume apa pun. Namun, kebijakan Gunakan kembali volume yang ada dan berisi data Anda memungkinkan PVC dihubungkan kembali ke handle volume asli. Hal ini berguna untuk jenis volume yang didukung oleh server eksternal, seperti NFS.
Aktifkan mode permisif dengan pemahaman tentang opsi pemulihan yang tersedia untuk volume non-Persistent Disk di cluster sumber. Untuk mencadangkan volume Filestore, lihat Menangani volume Filestore dengan Pencadangan untuk GKE.

Jika mode permisif diaktifkan, konfigurasi PVC akan dicadangkan, tetapi data volume tidak.

PersistentVolumeClaims "..." are not bound to PersistentVolumes and cannot be backed up

Deskripsi: PVC di cluster tidak terikat dengan PV.

Alasan: Pencadangan untuk GKE dapat mencadangkan PVC, tetapi tidak ada data volume yang akan dicadangkan. Situasi ini mungkin menunjukkan kesalahan konfigurasi atau ketidakcocokan antara penyimpanan yang diminta dan yang tersedia.
Periksa apakah PVC yang tidak terikat dalam kondisi yang dapat diterima. Jika ya, aktifkan mode permisif. Perhatikan implikasinya terhadap perilaku pencadangan.

Jika mode permisif diaktifkan, konfigurasi PVC akan dicadangkan, tetapi tidak ada data volume yang akan dicadangkan.

Failed to query API resources ...

Deskripsi: Layanan API di cluster salah dikonfigurasi. Hal ini menyebabkan permintaan ke jalur API menampilkan "Gagal mengkueri resource API". Layanan pokok mungkin tidak ada atau belum siap.

Alasan: Pencadangan untuk GKE tidak dapat mencadangkan resource apa pun yang ditayangkan oleh API yang tidak tersedia.
Periksa layanan pokok di spec.service layanan API untuk memastikannya sudah siap.

Jika mode permisif diaktifkan, resource dari grup API yang gagal dimuat tidak akan dicadangkan.

Secret ... is an auto-generated token from ServiceAccount ... referenced in Pod specs

Deskripsi: Di Kubernetes v1.23 dan yang lebih lama, akun layanan secara otomatis membuat token yang didukung oleh secret. Namun, dalam versi yang lebih baru, Kubernetes menghapus fitur token yang dibuat otomatis ini. Pod di cluster mungkin telah memasang volume secret ke sistem file penampung.

Alasan: Jika Pencadangan untuk GKE mencoba memulihkan akun layanan beserta secret yang dibuat secara otomatis dan Pod yang memasang volume secret, pemulihan tampaknya berhasil. Namun, Kubernetes menghapus secret, yang menyebabkan Pod macet dalam pembuatan container dan gagal dimulai.
Tentukan kolom spec.serviceAccountName di Pod. Tindakan ini memastikan bahwa token otomatis dipasang di /var/run/secrets/kubernetes.io/serviceaccount dalam penampung. Untuk informasi selengkapnya, lihat dokumentasi Mengonfigurasi Akun Layanan untuk Pod.

Jika mode permisif diaktifkan, secret akan dicadangkan, tetapi tidak dapat dipasang di Pod di cluster Kubernetes v1.24+.

CRD umum yang mengalami masalah dan tindakan yang disarankan

Berikut adalah beberapa CRD umum yang memiliki masalah pencadangan dan tindakan yang kami rekomendasikan untuk mengatasi masalah tersebut:

  • capacityrequests.internal.autoscaling.k8s.io: CRD ini digunakan untuk sementara di cluster v1.21. Jalankan kubectl delete crd capacityrequests.internal.autoscaling.k8s.io untuk menghapus CRD.
  • scalingpolicies.scalingpolicy.kope.io: CRD ini digunakan untuk mengontrol resource fluentd, tetapi GKE telah bermigrasi untuk menggunakan fluentbit. Jalankan kubectl delete crd scalingpolicies.scalingpolicy.kope.io untuk menghapus CRD.
  • memberships.hub.gke.io: Jalankan kubectl delete crd memberships.hub.gke.io untuk menghapus CRD jika tidak ada resource keanggotaan. Aktifkan mode permisif jika ada resource langganan.
  • applications.app.k8s.io: Mengaktifkan mode permisif dengan pemahaman tentang perilaku pemulihan.