Mengaktifkan mode permisif pada rencana pencadangan


Halaman ini menjelaskan cara mengaktifkan mode permisif pada rencana pencadangan.

Selama eksekusi pencadangan, jika Pencadangan untuk GKE mendeteksi kondisi yang kemungkinan akan 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.

Tentang mode permisif

Jika kegagalan pencadangan tidak dapat diterima dan masalah yang mendasarinya tidak dapat diatasi, Anda dapat mengaktifkan mode permisif. Mode permisif memastikan bahwa pencadangan berhasil diselesaikan, meskipun resource GKE yang berpotensi menyebabkan kegagalan pemulihan terdeteksi selama proses pencadangan. Detail tentang masalah ini diberikan di kolom Alasan status cadangan.

Sebaiknya gunakan opsi ini hanya jika Anda memahami masalahnya dan dapat menerapkan solusi selama proses pemulihan. Untuk mengetahui daftar potensi pesan error di kolom Alasan status cadangan dengan tindakan yang direkomendasikan, lihat Memecahkan masalah kegagalan pencadangan.

gcloud

Aktifkan 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 cadangan.

  7. Centang kotak 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 mengetahui 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 struktural 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 Anda menggunakan opsi berikut:
  • Jika Anda mengelola CRD, ikuti langkah-langkah di dokumentasi Kubernetes untuk menentukan skema struktural bagi CRD Anda.
  • Jika CRD dikelola GKE, Anda dapat memanggil kubectl delete crd jika tidak ada resource yang ada yang ditayangkan oleh CRD. Jika ada resource yang sudah ada yang ditayangkan oleh CRD, Anda dapat mengaktifkan mode permisif dengan memahami perilaku pemulihan. Untuk rekomendasi terkait CRD umum, lihat dokumentasi.
  • Jika CRD pihak ketiga, lihat dokumentasi yang relevan untuk bermigrasi 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 memiliki data volume yang dipulihkan. 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 memahami opsi pemulihan yang tersedia untuk volume Disk Non-Persisten 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 ke 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 implikasi untuk 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 yang mendasarinya 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 memastikan layanan tersebut 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 otomatis membuat token yang didukung oleh secret. Namun, di versi yang lebih baru, Kubernetes menghapus fitur token yang dibuat otomatis ini. Pod di cluster mungkin telah memasang volume secret ke sistem file container-nya.

Alasan: Jika Pencadangan untuk GKE mencoba memulihkan akun layanan beserta secret yang dibuat otomatis dan Pod yang memasang volume secret, pemulihan akan tampak 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 mengetahui informasi selengkapnya, lihat dokumentasi Mengonfigurasi Akun Layanan untuk Pod.

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

CRD umum yang bermasalah dan tindakan yang disarankan

Berikut adalah beberapa CRD umum yang memiliki masalah pencadangan dan tindakan yang kami sarankan 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 keanggotaan.
  • applications.app.k8s.io: Aktifkan mode permisif dengan memahami perilaku pemulihan.