Risolvi i problemi degli account di servizio in GKE


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

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

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.