Resolver problemas de contas de serviço no GKE


Nesta página, mostramos como resolver problemas com contas de serviço do Google Kubernetes Engine (GKE).

Restaurar a conta de serviço padrão para seu projeto do Google Cloud

A conta de serviço padrão do GKE, container-engine-robot, pode ser acidentalmente desassociada de um projeto. O papel de agente de serviço do Kubernetes Engine (roles/container.serviceAgent) é um papel de Identity and Access Management (IAM) que concede à conta de serviço as permissões para gerenciar recursos de cluster. Se você remover essa vinculação de papel da conta de serviço, a conta de serviço padrão ficará desvinculada do projeto, o que poderá impedir a implantação de aplicativos e a execução de outras operações de cluster.

Para verificar se a conta de serviço foi removida do seu projeto, use o console do Google Cloud ou a CLI do Google Cloud.

Console

gcloud

  • Execute este comando:

    gcloud projects get-iam-policy PROJECT_ID
    

    Substitua PROJECT_ID pela ID do projeto.

Se o painel ou o comando não mostrar container-engine-robot entre suas contas de serviço, o papel está desvinculado.

Para restaurar a vinculação de papel de agente de serviço do Kubernetes Engine (roles/container.serviceAgent), execute os seguintes comandos:

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

Confirme se a vinculação de papel foi restaurada:

gcloud projects get-iam-policy $PROJECT_ID

Se o nome da conta de serviço estiver com a função container.serviceAgent, a vinculação de papel foi restaurada. Por exemplo:

- members:
  - serviceAccount:service-1234567890@container-engine-robot.iam.gserviceaccount.com
  role: roles/container.serviceAgent

Ativar a conta de serviço padrão do Compute Engine

A conta de serviço usada para o pool de nós geralmente é a conta de serviço padrão do Compute Engine. Se essa conta de serviço padrão for desativada, os nós podem não ser registrados no cluster.

Para saber se a conta de serviço está desativada no seu projeto, use o console do Google Cloud ou a gcloud CLI.

Console

gcloud

  • Execute este comando:
gcloud iam service-accounts list  --filter="NAME~'compute' AND disabled=true"

Se a conta de serviço estiver desativada, execute o seguinte comando para ativá-la:

gcloud iam service-accounts enable PROJECT_ID-compute@developer.gserviceaccount.com

Substitua PROJECT_ID pela ID do projeto.

Para mais informações, consulte Resolver problemas no registro de nós.

Erro 400/403: permissões de edição ausentes na conta

Se a conta de serviço for excluída, talvez você receba um erro de permissão de edição ausente. Para saber como resolver esse erro, consulte Erro 400/403: permissões de edição ausentes na conta.

A seguir

Se precisar de mais ajuda, entre em contato com o Cloud Customer Care.