Dokumen ini menjelaskan resolusi untuk error managed workload identity umum.
Anda dapat memeriksa status Pod dengan menjalankan perintah berikut:
kubectl describe pod
Pod gagal di-deploy dengan sertifikat
Jika Pod workload Google Kubernetes Engine (GKE) gagal di-deploy dengan sertifikat yang dipasang, gunakan perintah berikut untuk memeriksa status Pod:
kubectl describe pod POD_NAME -n POD_NAMESPACE
Error terkait izin
Bagian ini menjelaskan error yang terkait dengan izin yang salah.
Izin ditolak saat menerbitkan sertifikat: gagal menerbitkan sertifikat dari GKE Auth
Error ini terlihat mirip dengan yang berikut ini:
Permission denied while issuing the certificate: failed to issue the certificate from the GKE Auth: rpc error: code = PermissionDenied desc = Permission 'privateca.certificates.createForSelf' denied on 'projects/PROJECT_NUMBER/locations/REGION/caPools/ CA_POOL_ID'
Error terjadi karena kumpulan workload identity tidak memiliki
peran CA Service Workload Certificate Requester
(roles/privateca.workloadCertificateRequester
)
di kumpulan CA subordinat.
Untuk mengatasi error ini, berikan peran ke kumpulan:
gcloud privateca pools add-iam-policy-binding SUBORDINATE_CA_POOL_ID \
--project=CA_POOL_PROJECT_ID \
--location=REGION \
--role=roles/privateca.workloadCertificateRequester \
--member="principal://iam.googleapis.com/projects/CA_POOL_PROJECT_NUMBER/name/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog"
Ganti kode berikut:
SUBORDINATE_CA_POOL_ID
: ID pool CA subordinatCA_POOL_PROJECT_ID
: project ID dari root CA poolREGION
: region CA subordinasiCA_POOL_PROJECT_NUMBER
: nomor project pool CAPROJECT_ID
: ID project workload identity pool
MountVolume.SetUp gagal untuk volume
Error ini terlihat mirip dengan yang berikut ini:
MountVolume.SetUp failed for volume "fleet-spiffe-credentials" : rpc error: code = Internal desc = unable to mount volume: while creating volume: while loading trust bundles: rpc error: code = Internal desc = while getting trust map from the trustBundleWatcher: rpc error: code = Internal desc = no GKEClusterTrustBundle objects found with fleet WIP nickname fleet-project/svc.id.goog
Error ini terjadi karena workload identity pool tidak memiliki
peran Pembaca Kumpulan CA Pribadi (roles/privateca.poolReader
) di kumpulan
CA subordinat.
Untuk mengatasi error ini, berikan peran ke kumpulan dan tunggu beberapa menit hingga paket kepercayaan dimuat:
gcloud privateca pools add-iam-policy-binding SUBORDINATE_CA_POOL_ID \
--location=REGION \
--role=roles/privateca.poolReader \
--member="principal://iam.googleapis.com/projects/PROJECT_NUMBER/name/locations/global/workloadIdentityPools/PROJECT_ID.svc.id.goog"
Ganti kode berikut:
SUBORDINATE_CA_POOL_ID
: ID pool CA subordinatREGION
: region CA subordinasiPROJECT_NUMBER
: nomor project workload identity poolPROJECT_ID
: ID project workload identity pool
Anda dapat menggunakan perintah berikut untuk memeriksa keberadaan paket kepercayaan:
kubectl get gkeclustertrustbundle
Saat paket kepercayaan dimuat, responsnya akan terlihat seperti berikut:
NAME AGE
svc.id.goog-PROJECT_ID.svc.id.goog 5m35s
Dalam output, PROJECT_ID
adalah project ID fleet yang terkait dengan root kepercayaan Anda.
Error sertifikat
Error di bagian ini terkait dengan konfigurasi sertifikat.
Beberapa error dapat terjadi jika sertifikat identitas workload terkelola tidak dibuat. Untuk memeriksa keberadaan sertifikat ini di volume yang dipasang Pod, lakukan hal berikut:
Menghubungkan ke pod.
# Open the pod sh interface kubectl exec -it $pod_name -n $pod_namespace -- sh
Cantumkan dan periksa file kredensial.
# Look up the volume contents: ls -la /var/run/secrets/workload-spiffe-credentials cat /var/run/secrets/workload-spiffe-credentials/certificates.pem cat /var/run/secrets/workload-spiffe-credentials/ca_certificates.pem cat /var/run/secrets/workload-spiffe-credentials/private_key.pem cat /var/run/secrets/workload-spiffe-credentials/trust_bundles.json
Anda juga dapat memeriksa status penyediaan sertifikat Pod dengan memeriksa log k8s_container
untuk penampung `gke-metadata-server melalui konsolTrusted Cloud .
Prasyarat gagal saat menerbitkan sertifikat
Deskripsi Pod dapat menyertakan pesan berikut:
Failed precondition while issuing the certificate: failed to issue the certificate from the GKE Auth: rpc error: code = FailedPrecondition
Error ini terjadi karena pool identitas beban kerja tidak dikonfigurasi dengan konfigurasi penerbitan sertifikat (CIC).
Untuk mengatasi error ini, buat CIC dan gunakan untuk memperbarui workload identity pool.