Halaman ini menjelaskan error terkait sistem yang mungkin Anda alami saat menggunakan Backup for GKE, hal-hal yang perlu dipertimbangkan saat mencadangkan resource, dan langkah-langkah untuk memecahkan masalah.
Error 100020102: Mode permisif ketat - Gagal mencadangkan CRD - Versi API v1beta1
tidak didukung
Error 100020102
terjadi saat upaya mencadangkan CustomResourceDefinition
yang awalnya diterapkan sebagai versi apiextensions.k8s.io/v1beta1
gagal karena
tidak memiliki skema struktural yang diperlukan dalam versi
API apiextensions.k8s.io/v1
. Error ini menghasilkan pesan error berikut:
Strict permissive mode - Failed to backup CRD - Unsupported v1beta1 API Version
.
Error ini terjadi karena versi apiextensions.k8s.io/v1
API dihapus di Google Kubernetes Engine versi 1.22. Untuk mengetahui informasi selengkapnya tentang penghapusan API untuk GKE versi 1.22, lihat Penghapusan API untuk GKE v1.22.
Perilaku operasi pencadangan dalam mode tidak diizinkan
Dalam mode tidak permisif, atau dalam rencana pencadangan yang ketat, operasi pencadangan akan gagal jika menemukan resource yang tidak dapat dicadangkan, seperti CustomResourceDefinition
yang dibuat dengan v1beta1
API. Error ini terjadi karena resource tidak memiliki skema struktural yang diperlukan oleh v1
API. Keberadaan CustomResourceDefinition
ini dianggap sebagai
error kritis karena mungkin tidak dipulihkan dengan benar ke cluster yang lebih baru.
Untuk mengatasi error ini, gunakan petunjuk berikut:
Identifikasi
CustomResourceDefinition
yang bermasalah dengan menjalankan perintahkubectl get crd
:kubectl get crd CRD_NAME
Ganti
CRD_NAME
dengan namaCustomResourceDefinition
dari pesan error Anda.Dalam output YAML, konfirmasi apakah
CustomResourceDefinition
dikonversi dengan benar darivbeta1
API kev1
API dengan menemukan kondisi berikut:spec.versions
: temukan kondisispec.versions
dengan melihat setiap versi yang tercantum di kolomspec.versions
. Jika salah satuspec.versions
tidak memiliki kolomschema.openAIV3Schema
,CustomResourceDefinition
tidak memiliki skema struktural yang ditentukan untuk versi tersebut.status.conditions
: temukan kondisistatus.conditions
dengan menemukan kondisitype:NonStructuralSchema
. Jikastatus
status.conditions
adalahtrue
, hal ini secara eksplisit mengonfirmasi bahwa skema tidak bersifat struktural.
Upgrade
CustomResourceDefinition
ke versi APIv1
menggunakan langkah-langkah berikut:Edit
CustomResourceDefinition
yang ada agar kompatibel dengan standarv1
dengan menambahkan skema struktural yang menentukan setiap kolom dan jenisnya dalam resource kustom. Untuk mengetahui informasi selengkapnya tentang cara menambahkan skema struktural, lihat Menentukan skema struktural.Terapkan manifes
v1
yang kompatibel ke cluster Anda.
Jika upgrade berhasil, coba lagi operasi pencadangan. Atau, gunakan salah satu metode berikut untuk mengatasi masalah:
Hapus
CustomResourceDefinition
dengan menjalankan perintahkubectl delete crd
jikaCustomResourceDefinition
tidak digunakan di cluster.kubectl delete crd CRD_NAME
Ganti
CRD_NAME
dengan namaCustomResourceDefinition
yang ingin Anda hapus.Aktifkan mode permisif pada rencana cadangan, yang memungkinkan Backup for GKE melewati resource—termasuk
CustomResourceDefinitions
dalam versi APIv1beta1
—dan melanjutkan operasi pencadangan lainnya. Untuk mengetahui informasi selengkapnya tentang cara mengaktifkan mode permisif, lihat Mengaktifkan mode permisif pada rencana pencadangan.
Coba lagi operasi pencadangan. Jika operasi terus gagal, hubungi Cloud Customer Care untuk mendapatkan bantuan lebih lanjut.
Error 100040102: Namespace tidak ditemukan
Error 100040102
terjadi saat upaya untuk melakukan operasi pencadangan gagal
karena namespace yang ditentukan dalam cakupan pencadangan tidak dapat ditemukan dalam
cluster. Agen Backup for GKE tidak dapat menemukan satu atau beberapa namespace yang tercantum secara eksplisit di kolom selectedNamespaces
pada konfigurasi BackupPlan
. Pencadangan untuk GKE mengharuskan semua namespace yang ditentukan ada
di cluster pada saat operasi pencadangan dimulai. Kegagalan menemukan
namespace akan menghasilkan pesan error berikut:
Namespace [NAMESPACE_NAME] is not found.
Untuk mengatasi masalah ini, gunakan petunjuk berikut:
Pastikan namespace telah dimasukkan dengan benar dengan memeriksa daftar
selectedNamespaces
dalam konfigurasiBackupPlan
Anda.Konfirmasi bahwa namespace yang dilaporkan dalam pesan error ada dengan menjalankan perintah
kubectl get namespace
:kubectl get namespace NAMESPACE_NAME
Ganti
NAMESPACE_NAME
dengan nama namespace yang dilaporkan dalam pesan error.Jika namespace tidak ada, pesan akan muncul yang menyatakan bahwa namespace tidak ditemukan, misalnya,
Error from server (NotFound): namespaces "[NAMESPACE_NAME]" not found
.Perbaiki
BackupPlan
. Jika namespace salah dieja, perbaruiBackupPlan
dengan nama namespace yang benar. Jika namespace benar-benar tidak ada lagi dan tidak perlu dicadangkan, hapus namespace tersebut dari daftarselectedNamespaces
di konfigurasiBackupPlan
.Coba lagi operasi pencadangan setelah melakukan koreksi yang diperlukan pada
BackupPlan
dan memulai pencadangan baru.
Jika operasi terus gagal, hubungi Cloud Customer Care untuk mendapatkan bantuan lebih lanjut.