Cette page explique comment résoudre les problèmes liés aux comptes de service Google Kubernetes Engine (GKE).
Restaurer le compte de service par défaut sur votre projet Google Cloud
Le compte de service par défaut de GKE, container-engine-robot
, peut être dissocié accidentellement d'un projet. Le rôle d'agent de service Kubernetes Engine (roles/container.serviceAgent
) est un rôle Identity and Access Management (IAM) qui accorde au compte de service les autorisations nécessaires pour gérer les ressources du cluster. Si vous supprimez cette liaison de rôle du compte de service, le compte de service par défaut est dissocié du projet, ce qui peut vous empêcher de déployer des applications et d'effectuer d'autres opérations sur le cluster.
Pour vérifier si le compte de service a été supprimé de votre projet, vous pouvez utiliser la console Google Cloud ou la Google Cloud CLI.
Console
Dans Google Cloud Console, accédez à la page IAM et administration.
gcloud
Exécutez la commande suivante :
gcloud projects get-iam-policy PROJECT_ID
Remplacez
PROJECT_ID
par l'ID du projet.
Si le tableau de bord ou la commande n'affiche pas container-engine-robot
parmi vos comptes de service, le rôle est dissocié.
Pour restaurer la liaison du rôle d'agent de service Kubernetes Engine (roles/container.serviceAgent
), exécutez les commandes suivantes:
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
Vérifiez que la liaison de rôle est restaurée:
gcloud projects get-iam-policy $PROJECT_ID
Si vous voyez le nom du compte de service avec le rôle container.serviceAgent
, la liaison de rôle est restaurée. Exemple :
- members:
- serviceAccount:service-1234567890@container-engine-robot.iam.gserviceaccount.com
role: roles/container.serviceAgent
Activer le compte de service Compute Engine par défaut
Le compte de service utilisé pour le pool de nœuds est généralement le compte de service Compute Engine par défaut. Si ce compte de service par défaut est désactivé, vos nœuds risquent de ne pas s'enregistrer auprès du cluster.
Pour vérifier si le compte de service est désactivé dans votre projet, vous pouvez utiliser la console Google Cloud ou gcloud CLI.
Console
Dans Google Cloud Console, accédez à la page IAM et administration.
gcloud
- Exécutez la commande suivante :
gcloud iam service-accounts list --filter="NAME~'compute' AND disabled=true"
Si le compte de service est désactivé, exécutez la commande suivante pour l'activer:
gcloud iam service-accounts enable PROJECT_ID-compute@developer.gserviceaccount.com
Remplacez PROJECT_ID
par l'ID du projet.
Pour en savoir plus, consultez Résoudre les problèmes d'enregistrement de nœuds.
Erreur 400/403 : le compte n'est pas autorisé à apporter des modifications
Si votre compte de service est supprimé, une erreur d'autorisation de modification peut s'afficher. Pour savoir comment résoudre ce problème, consultez Erreur 400/403: le compte n'est pas autorisé à apporter des modifications.
Étape suivante
Si vous avez besoin d'une aide supplémentaire, contactez Cloud Customer Care.