Questo documento descrive le soluzioni per gli errori comuni relativi alle identità dei carichi di lavoro gestiti.
Per controllare lo stato di un pod, esegui il seguente comando:
kubectl describe pod
Il deployment del pod con i certificati non riesce
Se non è stato possibile eseguire il deployment del pod del carico di lavoro Google Kubernetes Engine (GKE) con i certificati montati, utilizza il seguente comando per controllare lo stato del pod:
kubectl describe pod POD_NAME -n POD_NAMESPACE
Errori relativi alle autorizzazioni
Questa sezione descrive gli errori relativi alle autorizzazioni errate.
Autorizzazione negata durante l'emissione del certificato: impossibile emettere il certificato da GKE Auth
Questo errore è simile al seguente:
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'
L'errore si è verificato perché nel pool di identità del carico di lavoro manca il ruolo CA Service Workload Certificate Requester
(roles/privateca.workloadCertificateRequester
) nel pool di CA secondarie.
Per risolvere questo errore, concedi il ruolo al pool:
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"
Sostituisci quanto segue:
SUBORDINATE_CA_POOL_ID
: l'ID del pool di CA subordinatoCA_POOL_PROJECT_ID
: l'ID progetto del pool di CA radiceREGION
: la regione della CA subordinataCA_POOL_PROJECT_NUMBER
: il numero del progetto del pool di CAPROJECT_ID
: l'ID progetto del pool di identità del workload
MountVolume.SetUp non riuscito per il volume
Questo errore è simile al seguente:
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
Questo errore si è verificato perché nel pool di identità di lavoro manca il ruolo Lettore pool di CA privato (roles/privateca.poolReader
) nel pool di CA secondario.
Per risolvere questo errore, concedi il ruolo al pool e attendi qualche minuto per il caricamento dei bundle di attendibilità:
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"
Sostituisci quanto segue:
SUBORDINATE_CA_POOL_ID
: l'ID del pool di CA subordinatoREGION
: la regione della CA subordinataPROJECT_NUMBER
: il numero del progetto del pool di identità del workloadPROJECT_ID
: l'ID progetto del pool di identità del workload
Puoi utilizzare il seguente comando per verificare l'esistenza dei pacchetti di attendibilità:
kubectl get gkeclustertrustbundle
Quando i bundle di attendibilità vengono caricati, la risposta è la seguente:
NAME AGE
svc.id.goog-PROJECT_ID.svc.id.goog 5m35s
Nell'output, PROJECT_ID
è l'ID progetto del
parco a cui è associato il tuo albero di attendibilità.
Errori del certificato
Gli errori in questa sezione sono relativi alla configurazione dei certificati.
Se i certificati delle identità di carico di lavoro gestite non vengono generati, possono verificarsi diversi errori. Per verificare l'esistenza di questi certificati sui volumi montati su pod:
Connettiti al pod.
# Open the pod sh interface kubectl exec -it $pod_name -n $pod_namespace -- sh
Elenca e ispeziona i file delle credenziali.
# 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
Puoi anche controllare lo stato del provisioning dei certificati di un pod esaminando i log
k8s_container
del contenitore "gke-metadata-server" tramite la console
Trusted Cloud .
Precondizione non riuscita durante l'emissione del certificato
La descrizione del pod può includere il seguente messaggio:
Failed precondition while issuing the certificate: failed to issue the certificate from the GKE Auth: rpc error: code = FailedPrecondition
Questo errore si è verificato perché il pool di identità del workload non è stato configurato con una configurazione di emissione dei certificati (CIC).
Per risolvere questo errore, crea un CIC e utilizzalo per aggiornare il pool Workload Identity.