Memecahkan masalah error sistem di Backup for GKE

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 API apiextensions.k8s.io/v1 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:

  1. Identifikasi CustomResourceDefinition yang bermasalah dengan menjalankan perintah kubectl get crd:

    kubectl get crd CRD_NAME
    

    Ganti CRD_NAME dengan nama CustomResourceDefinition dari pesan error Anda.

  2. Dalam output YAML, konfirmasi apakah CustomResourceDefinition dikonversi dengan benar dari vbeta1 API ke v1 API dengan menemukan kondisi berikut:

    1. spec.versions: temukan kondisi spec.versions dengan melihat setiap versi yang tercantum di kolom spec.versions. Jika salah satu spec.versions tidak memiliki kolom schema.openAIV3Schema, CustomResourceDefinition tidak memiliki skema struktural yang ditentukan untuk versi tersebut.

    2. status.conditions: temukan kondisi status.conditions dengan menemukan kondisi type:NonStructuralSchema. Jika status status.conditions adalah true, hal ini secara eksplisit mengonfirmasi bahwa skema tidak bersifat struktural.

  3. Upgrade CustomResourceDefinition ke versi API v1 menggunakan langkah-langkah berikut:

    1. Edit CustomResourceDefinition yang ada agar kompatibel dengan standar v1 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.

    2. Terapkan manifes v1 yang kompatibel ke cluster Anda.

  4. Jika upgrade berhasil, coba lagi operasi pencadangan. Atau, gunakan salah satu metode berikut untuk mengatasi masalah:

    • Hapus CustomResourceDefinition dengan menjalankan perintah kubectl delete crd jika CustomResourceDefinition tidak digunakan di cluster.

      kubectl delete crd CRD_NAME
      

      Ganti CRD_NAME dengan nama CustomResourceDefinitionyang ingin Anda hapus.

    • Aktifkan mode permisif pada rencana cadangan, yang memungkinkan Backup for GKE melewati resource—termasuk CustomResourceDefinitions dalam versi API v1beta1—dan melanjutkan operasi pencadangan lainnya. Untuk mengetahui informasi selengkapnya tentang cara mengaktifkan mode permisif, lihat Mengaktifkan mode permisif pada rencana pencadangan.

  5. Coba lagi operasi pencadangan. Jika operasi terus gagal, hubungi Cloud Customer Care untuk mendapatkan bantuan lebih lanjut.

Langkah berikutnya