Memecahkan masalah error izin di Backup for GKE

Halaman ini menjelaskan error izin yang mungkin Anda alami saat menggunakan Pencadangan untuk GKE, hal-hal yang perlu dipertimbangkan saat melakukan tindakan, dan cara menyelesaikan error.

Error 100010101: Gagal mencadangkan PersistentVolumeClaim - Binding IAM untuk project tenant tidak ada

Error 100010101 terjadi saat upaya mencadangkan PersistentVolumeClaim gagal karena binding Identity and Access Management untuk project tenant Anda tidak ada, sehingga menghasilkan pesan error yang menyatakan Failed to backup PersistentVolumeClaim - Missing IAM binding for tenant project.

Backup for GKE membuat snapshot Persistent Disk cluster GKE Anda. Snapshot berada di project Google Cloud Anda, yang juga dikenal sebagai project konsumen, dan Google Cloud membuatnya dalam project tenant yang dikelolanya. Project tenant ada dalam organisasi google.com, terpisah dari organisasi Anda sendiri.

Agen layanan dalam project tenant memerlukan izin tertentu untuk menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) yang mengenkripsi Persistent Disk yang dirujuk oleh PersistentVolumeClaim kluster Anda. Izin ini mengenkripsi dan mendekripsi data snapshot. Jika agen layanan service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com tidak memiliki peran roles/cloudkms.cryptoKeyEncrypterDecrypter di CMEK disk Anda, operasi pencadangan akan gagal.

Untuk mengatasi error ini, gunakan petunjuk berikut:

  1. Pastikan Anda memiliki izin IAM yang memadai untuk mengubah kebijakan IAM pada kunci Cloud Key Management Service di konsol, seperti roles/cloudkms.admin atau roles/owner. Google Cloud

  2. Temukan agen layanan Compute Engine project tenant menggunakan nilai TENANT_PROJECT_NUMBER yang ada dalam pesan status reason dari operasi pencadangan yang gagal. Contohnya, service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com.

  3. Temukan informasi CMEK berikut yang digunakan untuk Persistent Disk terenkripsi Anda:

    • Nama kunci: nama kunci enkripsi Anda.

    • Key ring: nama key ring tempat kunci Anda berada.

    • Location: lokasi Google Cloud tempat kunci Anda berada. Misalnya, global atau us-central1.

  4. Untuk memberikan peran roles/cloudkms.cryptoKeyEncrypterDecrypter pada CMEK Anda kepada agen layanan Compute Engine project tenant, jalankan perintah gcloud kms keys add-iam-policy-binding menggunakan Google Cloud CLI:

    gcloud kms keys add-iam-policy-binding KEY_NAME \
        --keyring KEY_RING \
        --location LOCATION \
        --member "serviceAccount:service-TENANT_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com" \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter
    

    Ganti kode berikut:

    • KEY_NAME: nama kunci enkripsi Anda.

    • KEY_RING: nama key ring.

    • LOCATION: Google Cloud lokasi kunci Anda. Misalnya, global atau us-central1.

    • TENANT_PROJECT_NUMBER: nomor project tenant yang Anda peroleh dari pesan status reason dari operasi pencadangan yang gagal.

    Jika perintah berhasil, output-nya akan terlihat seperti berikut:

    - members:
    - serviceAccount:service-987654321098@compute-system.iam.gserviceaccount.com
    role: roles/cloudkms.cryptoKeyEncrypterDecrypter
    
  5. Uji ulang operasi pencadangan. Jika operasi masih gagal, hubungi Cloud Customer Care untuk mendapatkan bantuan lebih lanjut.

Error 100010104: Gagal mencadangkan PersistentVolumeClaim - Pelanggaran batasan kebijakan org saat membuat snapshot

Error 100010104 terjadi saat upaya mencadangkan PersistentVolumeClaim gagal karena pelanggaran batasan kebijakan organisasi selama pembuatan snapshot, sehingga menghasilkan pesan error yang menyatakan Failed to backup PersistentVolumeClaim - Org policy constraint violation while creating snapshot.

Backup for GKE membuat snapshot Persistent Disk cluster GKE Anda. Snapshot berada di project Google Cloud Anda, yang juga dikenal sebagai project konsumen, dan dibuat dalam project tenant yang dikelola oleh Google Cloud. Project tenant ada dalam organisasi google.com, terpisah dari organisasi Anda sendiri.

Kebijakan organisasi Anda menentukan tempat Anda dapat membuat resource penyimpanan. Error Constraint constraints/compute.storageResourceUseRestrictions violated berarti bahwa resource atau snapshot melanggar kebijakan karena dibuat di project tenant yang bukan bagian dari struktur organisasi yang diizinkan. Karena project tenant berada dalam organisasi Google, project tersebut berada di luar kebijakan yang Anda tetapkan, yang menyebabkan pencadangan gagal.

Untuk mengatasi error ini, gunakan petunjuk berikut:

  1. Temukan kebijakan organisasi yang menerapkan batasan constraints/compute.storageResourceUseRestrictions. Untuk mengetahui informasi selengkapnya tentang cara melihat kebijakan organisasi menggunakan konsol Google Cloud , lihat Melihat kebijakan organisasi.

  2. Ubah kebijakan constraints/compute.storageResourceUseRestrictions untuk menyertakan folder project tenant folders/77620796932 yang digunakan oleh Backup for GKE dalam daftar yang diizinkannya.

  3. Simpan perubahan kebijakan setelah Anda menambahkan folder ke daftar yang diizinkan.

  4. Uji ulang operasi pencadangan setelah kebijakan organisasi diperbarui dan diterapkan, yang biasanya memerlukan waktu beberapa menit. Pencadangan harus dilanjutkan tanpa melanggar batasan penggunaan resource penyimpanan. Jika operasi masih gagal, hubungi Cloud Customer Care untuk mendapatkan bantuan lebih lanjut.

Error 100010106: Gagal mencadangkan PersistentVolumeClaim - Binding IAM untuk agen layanan Backup for GKE tidak ada

Error 100010106 terjadi saat upaya mencadangkan PersistentVolumeClaim gagal karena binding Identity and Access Management yang tidak ada untuk agen layanan Backup for GKE Anda, sehingga menghasilkan pesan error yang menyatakan Failed to backup PVC - Missing IAM binding for Backup for GKE service agent.

Pencadangan untuk GKE memerlukan izin untuk menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) BackupPlan's Anda untuk mengenkripsi dan mendekripsi volume Persistent Disk. Jika agen layanan Backup for GKE tidak memiliki peran roles/cloudkms.cryptoKeyEncrypterDecrypter di CMEK BackupPlan Anda, operasi pencadangan akan gagal.

Untuk mengatasi error ini, gunakan petunjuk berikut:

  1. Identifikasi agen layanan Backup for GKE yang dikelola Google khusus untuk project Anda. Misalnya, service-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com. Anda dapat menemukan nomor project menggunakan metode berikut:

    • Gunakan dasbor project Google Cloud di konsol Google Cloud .

    • Jalankan perintah gcloud projects describe menggunakan Google Cloud CLI:

      gcloud projects describe PROJECT_ID –format="value(projectNumber)"
      

      Ganti PROJECT_ID dengan nama unik project Anda.

  2. Identifikasi detail CMEK berikut:

    • Nama kunci: nama kunci enkripsi Anda.

    • Key ring: nama key ring tempat kunci Anda berada.

    • Lokasi: lokasi Google Cloud tempat CMEK BackupPlan Anda berada. Contohnya, global atau us-central1.

  3. Untuk memberikan peran roles/cloudkms.cryptoKeyEncrypterDecrypter ke agen layanan Pencadangan untuk GKE di CMEK Anda, gunakan Google Cloud CLI untuk menjalankan perintah gcloud kms keys add-iam-policy-binding:

    gcloud kms keys add-iam-policy-binding KEY_NAME \
        --keyring KEY_RING \
        --location LOCATION \
        --member "serviceAccount:service-PROJECT_NUMBER@gcp-sa-gkebackup.iam.gserviceaccount.com" \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter
    

    Ganti kode berikut:

    • KEY_NAME: nama kunci enkripsi Anda.

    • KEY_RING: nama key ring.

    • LOCATION: Google Cloud lokasi kunci Anda. Misalnya, global atau us-central1.

    • PROJECT_NUMBER: nomor project Google Cloud Anda.

  4. Pastikan Anda memiliki izin Identity and Access Management yang diperlukan pada kunci Cloud Key Management Service. Misalnya roles/cloudkms.admin atau roles/owner.

  5. Verifikasi bahwa Anda memiliki izin yang diberikan. Di output perintah gcloud kms keys add-iam-policy-binding sebelumnya, cari entri yang mirip dengan berikut ini:

    -members:
    -serviceAccount:service-123456789012@gcp-sa-gkebackup.iam.gserviceaccount.com
    role: roles/cloudkms.cryptoKeyEncrypterDecrypter
    
  6. Uji ulang operasi pencadangan setelah Anda memberikan izin yang diperlukan. Jika operasi tidak berhasil diselesaikan, hubungi Cloud Customer Care untuk mendapatkan bantuan lebih lanjut.

Error 100010107: Gagal mencadangkan PersistentVolumeClaim - Binding IAM tidak ada - akun layanan agen (KCP)

Error 100010107 terjadi saat Anda mencoba melakukan operasi pencadangan Pencadangan untuk GKE dan agen layanan cluster Google Kubernetes Engine tidak memiliki akses ke kunci enkripsi yang dikelola pelanggan (CMEK), sehingga menghasilkan pesan yang menyatakan Failed to backup PVC - Missing IAM binding - agent service account (KCP).

Agen layanan cluster Google Kubernetes Engine, biasanya dalam format service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com, sangat penting agar cluster GKE Anda dapat berinteraksi dengan layanan Google Cloud. Saat paket pencadangan Anda menggunakan kunci enkripsi yang dikelola pelanggan (CMEK). Agen layanan ini memerlukan izin untuk mengenkripsi dan mendekripsi data cadangan Anda menggunakan CMEK Anda. Jika paket pencadangan tidak memiliki peran roles/cloudkms.cryptoKeyEncrypterDecrypter di CMEK Anda, operasi pencadangan yang dimulai dari cluster akan gagal dengan error permission denied.

Untuk mengatasi error ini, gunakan petunjuk pemecahan masalah berikut:

  1. Pastikan Anda memiliki izin yang benar untuk mengubah kebijakan IAM pada kunci Cloud Key Management Service. Misalnya, cloudkms.admin atau roles/owner.

  2. Identifikasi agen layanan cluster Google Kubernetes Engine. Agen layanan ini dibuat dan dikelola secara otomatis oleh Google Cloud untuk cluster GKE Anda. Contoh, service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com. Anda memerlukan nomor project untuk menyusun akun layanan lengkap. Anda dapat menemukan nomor project menggunakan salah satu metode berikut:

    • Gunakan dasbor project Google Cloud di konsol Google Cloud .

    • Jalankan perintah gcloud projects describe menggunakan Google Cloud CLI:

      gcloud projects describe PROJECT_ID –-format="value(projectNumber)"
      

      Ganti PROJECT_ID dengan project ID Anda.

  3. Cari informasi CMEK berikut:

    • Nama kunci: nama kunci enkripsi Anda.

    • Key ring: nama key ring tempat kunci Anda berada.

    • Location: lokasi Google Cloud tempat kunci Anda berada. Misalnya, global atau us-central1.

  4. Berikan peran roles/cloudkms.cryptoKeyEncrypterDecrypter di tingkat CMEK. Agen layanan Google Kubernetes Engine memerlukan izin pada kunci enkripsi Anda. Untuk memberikan peran roles/cloudkms.cryptoKeyEncrypterDecrypter di CMEK Anda, gunakan Google Cloud CLI untuk menjalankan perintah gcloud kms key add-iam-policy-binding:

    gcloud kms keys add-iam-policy-binding KEY_NAME \
        --keyring KEY_RING \
        --location LOCATION \
        --member "serviceAccount:service-PROJECT_NUMBER@container-engine-robot.iam.gserviceaccount.com" \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter
    

    Ganti kode berikut:

    • KEY_NAME: nama kunci enkripsi Anda.

    • KEY_RING: nama key ring.

    • LOCATION: Google Cloud lokasi kunci Anda. Misalnya, global atau us-central1.

    • PROJECT_NUMBER: nama project.

    Outputnya mirip dengan hal berikut ini:

     - members:
     - serviceAccount:service-123456789012@container-engine-robot.iam.gserviceaccount.com
     role: roles/cloudkms.cryptoKeyEncrypterDecrypter
     ```
    
  5. Coba lagi operasi Backup for GKE. Jika operasi terus gagal, hubungi Cloud Customer Care untuk mendapatkan bantuan lebih lanjut.

Error 100020101: Gagal mencadangkan PersistentVolumeClaim - PersistentVolumeClaim terikat ke jenis PersistentVolume yang tidak didukung

Error 100020101 terjadi saat upaya mencadangkan PersistentVolumeClaim gagal karena PersistentVolumeClaim terikat ke jenis PersistentVolume yang tidak didukung. Error ini akan menghasilkan pesan error berikut: PersistentVolumeClaims are bound to PersistentVolumes of unsupported types and cannot be backed up.

Error ini terjadi saat operasi Pencadangan untuk GKE Anda mengalami PersistentVolumeClaim yang terikat ke PersistentVolume yang menggunakan jenis volume yang tidak didukung untuk pencadangan data oleh Pencadangan untuk GKE. Pencadangan untuk GKE terutama mendukung pencadangan data dari volume Persistent Disk. Jika PersistentVolumeClaim terikat ke PersistentVolume yang bukan Persistent Disk, operasi pencadangan gagal untuk data PersistentVolumeClaim.

Untuk mengatasi error ini, gunakan petunjuk pemecahan masalah berikut:

  1. Buat daftar semua PersistentVolumeClaims dan PersistentVolumes yang terikat padanya dengan menjalankan perintah kubectl get pvc. Tinjau daftar ini untuk mengidentifikasi PersistentVolumes yang didukung oleh jenis volume yang tidak didukung.

    kubectl get pvc --all-namespaces -o wide
    
  2. Tentukan jenis volume PersistentVolume yang didukung oleh jenis volume yang tidak didukung oleh Backup for GKE dengan menjalankan perintah kubectl describe pv:

    kubectl describe pv PERSISTENT_VOLUME_NAME
    

    Ganti kode berikut:

    PERSISTENT_VOLUME_NAME: nama PersistentVolume yang memiliki jenis volume yang tidak didukung yang tercantum sebagai kolom VOLUME dalam output dari langkah sebelumnya.

    Dalam output, gunakan kolom Source dan Driver untuk mendapatkan detail penyedia volume:

    • Untuk Persistent Disk yang didukung: output-nya akan terlihat mirip dengan Source.Driver: pd.csi.storage.gke.io atau Source.Type:GCEPersistentDisk.

    • Untuk jenis yang tidak didukung yang menyebabkan error: outputnya akan berupa driver non-Persistent Disk, misalnya, Source.Driver:filestore.csi.storage.gke.io.

  3. Gunakan salah satu metode berikut untuk mengatasi error:

    • Bermigrasi ke volume Persistent Disk: sebaiknya gunakan metode ini untuk pencadangan data lengkap. Jika Anda perlu mencadangkan data volume yang sebenarnya, Anda harus menggunakan Persistent Disk, yang melibatkan migrasi data Anda dari jenis volume yang tidak didukung ke volume CSI Persistent Disk baru. Untuk mendapatkan bantuan terkait migrasi volume Disk Persisten, hubungi Cloud Customer Care.

    • Aktifkan mode permisif di Pencadangan untuk GKE: kami merekomendasikan metode ini jika pencadangan data tidak diperlukan untuk volume yang tidak didukung. Jika memigrasikan data tidak layak atau diperlukan—misalnya, jika volume didukung oleh layanan eksternal dan Anda berencana untuk melampirkannya kembali selama operasi pemulihan—Anda dapat mengonfigurasi rencana pencadangan Backup for GKE untuk mengizinkan pencadangan dilanjutkan dalam mode permisif. Untuk mengetahui informasi selengkapnya tentang cara mengaktifkan mode permisif, lihat Mengaktifkan mode permisif pada rencana pencadangan.

  4. Coba lagi operasi Backup for GKE. Berdasarkan metode yang Anda pilih untuk menyelesaikan error, operasi Pencadangan untuk GKE akan berperilaku dengan cara berikut:

    • Jika Anda bermigrasi ke volume Persistent Disk, pencadangan akan berhasil untuk volume, termasuk datanya.

    • Jika Anda mengaktifkan mode permisif, operasi pencadangan akan berhasil, tetapi data untuk volume yang tidak didukung tidak dicadangkan.

Jika operasi terus gagal, hubungi Cloud Customer Care untuk mendapatkan bantuan lebih lanjut.

Error 100020104: Gagal mencadangkan PersistentVolumeClaim - PersistentVolumeClaim tidak terikat ke PersistentVolume

Error 100020104 terjadi saat upaya mencadangkan PersistentVolumeClaim gagal karena PersistentVolumeClaim tidak terikat ke PersistentVolume. Error tersebut menghasilkan pesan error berikut: Failed to backup PVC - PVC Not Bound to a Persistent Volume.

Error ini terjadi saat operasi Pencadangan untuk GKE Anda mencoba mencadangkan PersistentVolumeClaim yang tidak berhasil terikat ke PersistentVolume. PersistentVolumeClaim harus terikat ke PersistentVolume sebelum dapat digunakan oleh workload yang menggunakan, seperti Pod, dan selanjutnya dicadangkan oleh Pencadangan untuk GKE. Jika PersistentVolumeClaim tetap dalam status Pending, hal ini menandakan bahwa PersistentVolume yang sesuai tidak tersedia atau tidak dapat disediakan atau diikat, yang menyebabkan kegagalan operasi pencadangan. Alasan umum PersistentVolumeClaim tetap tidak terikat adalah saat StorageClass terkait menggunakan mode binding WaitForFirstConsumer, tetapi belum ada Pod atau workload lain yang mencoba menggunakan PersistentVolumeClaim.

Untuk mengatasi error ini, gunakan petunjuk pemecahan masalah berikut:

  1. Untuk memeriksa status semua PersistentVolumeClaims di cluster dan mengidentifikasi PersistentVolumeClaim yang tidak terikat, jalankan perintah kubectl get pvc:

    kubectl get pvc --all-namespaces | grep `Pending`
    
  2. Setelah Anda mengidentifikasi PersistentVolumeClaim yang tidak terikat ke PersistentVolume, ambil informasi tentang PersistentVolumeClaim yang tidak terikat dengan menjalankan perintah kubectl describe pvc:

    kubectl describe pvc PVC_NAME -n NAMESPACE_NAME
    

    Ganti kode berikut:

    • PVC_NAME: nama PersistentVolumeClaim yang gagal dicadangkan.

    • NAMESPACE_NAME: nama namespace tempat PersistentVolumeClaim berada.

    Setelah deskripsi muncul, gunakan kolom Status dan Events untuk menentukan apakah PersistentVolumeClaim terikat ke PersistentVolume. Jika Anda masih tidak dapat menentukan alasan PersistentVolumeClaim tidak terikat ke PersistentVolume atau Anda tidak dapat menyelesaikan masalah yang teridentifikasi, Anda dapat mengaktifkan mode permisif pada rencana pencadangan Anda. Untuk mengetahui informasi selengkapnya tentang cara mengaktifkan mode permisif, lihat Mengaktifkan mode permisif pada rencana pencadangan.

Langkah berikutnya