Questa pagina mostra come risolvere i problemi relativi agli account servizio di Google Kubernetes Engine (GKE).
Ripristina l'account di servizio predefinito nel progetto Google Cloud
L'account di servizio predefinito di GKE, container-engine-robot
, può
slegato accidentalmente da un progetto. Il
ruolo Agente di servizio Kubernetes Engine
(roles/container.serviceAgent
) è un ruolo Identity and Access Management (IAM)
che concede all'account di servizio le autorizzazioni per gestire le risorse del cluster. Se
rimuovi questa associazione dei ruoli dall'account di servizio,
non è più associato al progetto, impedendoti così di eseguire il deployment
ed eseguire altre operazioni sul cluster.
Per verificare se l'account di servizio è stato rimosso dal progetto, puoi utilizzare la console Google Cloud o Google Cloud CLI.
Console
Nella console Google Cloud, vai alla pagina IAM e amministrazione.
gcloud
Esegui questo comando:
gcloud projects get-iam-policy PROJECT_ID
Sostituisci
PROJECT_ID
con l'ID progetto.
Se nella dashboard o nel comando non viene visualizzato container-engine-robot
tra
ai tuoi account di servizio, il ruolo non è associato.
Ripristinare il ruolo Agente di servizio Kubernetes Engine
(roles/container.serviceAgent
), esegui questi comandi:
PROJECT_NUMBER=$(gcloud projects describe "PROJECT_ID" \
--format 'get(projectNumber)') \
gcloud projects add-iam-policy-binding PROJECT_ID \
--member "serviceAccount:service-${PROJECT_NUMBER?}@container-engine-robot.iam.gserviceaccount.com" \
--role roles/container.serviceAgent
Verifica che l'associazione dei ruoli venga ripristinata:
gcloud projects get-iam-policy $PROJECT_ID
Se vedi il nome dell'account di servizio insieme al ruolo container.serviceAgent
, l'associazione del ruolo è stata ripristinata. Ad esempio:
- members:
- serviceAccount:service-1234567890@container-engine-robot.iam.gserviceaccount.com
role: roles/container.serviceAgent
Abilita l'account di servizio predefinito Compute Engine
L'account di servizio utilizzato per il pool di nodi è in genere Account di servizio predefinito Compute Engine. Se questo account di servizio predefinito viene disattivato, la registrazione dei nodi al cluster potrebbe non riuscire.
Per verificare se l'account di servizio è disattivato nel tuo progetto, puoi utilizzare la console Google Cloud o gcloud CLI.
Console
Nella console Google Cloud, vai alla pagina IAM e amministrazione.
gcloud
- Esegui questo comando:
gcloud iam service-accounts list --filter="NAME~'compute' AND disabled=true"
Se l'account di servizio è disattivato, esegui questo comando per abilitare l'account di servizio:
gcloud iam service-accounts enable PROJECT_ID-compute@developer.gserviceaccount.com
Sostituisci PROJECT_ID
con l'ID progetto.
Per ulteriori informazioni, consulta Risolvere i problemi di registrazione dei nodi.
Errore 400/403: autorizzazioni di modifica mancanti nell'account
Se il tuo account di servizio viene eliminato, potresti notare autorizzazioni di modifica mancanti . Per scoprire come risolvere questo problema, consulta Errore 400/403: autorizzazioni di modifica mancanti nell'account.
Passaggi successivi
Se hai bisogno di ulteriore assistenza, contatta l'assistenza clienti Google Cloud.