web-dev-qa-db-fra.com

Continuez à obtenir une erreur d'autorisation gcloud.container.clusters.get-credentials

J'essaie d'intégrer CircleCi avec le moteur gcloud Kubernetes.

  1. J'ai créé un compte de service avec les rôles Développeur Kubernetes Engine et Administrateur de stockage.
  2. Création du fichier CircleCi yaml et configuration du CI.

Une partie de mon fichier yaml comprend:

docker:
            - image: google/cloud-sdk
        environment:
            - PROJECT_NAME: 'my-project'
            - GOOGLE_PROJECT_ID: 'my-project-112233'
            - GOOGLE_COMPUTE_ZONE: 'us-central1-a'
            - GOOGLE_CLUSTER_NAME: 'my-project-bed'
        steps:
            - checkout
            - run:
                  name: Setup Google Cloud SDK
                  command: |
                      apt-get install -qq -y gettext
                      echo $GCLOUD_SERVICE_KEY > ${HOME}/gcloud-service-key.json
                      gcloud auth activate-service-account --key-file=${HOME}/gcloud-service-key.json
                      gcloud --quiet config set project ${GOOGLE_PROJECT_ID}
                      gcloud --quiet config set compute/zone ${GOOGLE_COMPUTE_ZONE}
                      gcloud --quiet container clusters get-credentials ${GOOGLE_CLUSTER_NAME}

Tout fonctionne parfaitement sauf que la dernière commande:

gcloud --quiet container clusters get-credentials ${GOOGLE_CLUSTER_NAME}

Il échoue toujours avec l'erreur:

ERROR: (gcloud.container.clusters.get-credentials) ResponseError: code=403, message=Required "container.clusters.get" permission(s) for "projects/my-project-112233/zones/us-central1-a/clusters/my-project-bed". See https://cloud.google.com/kubernetes-engine/docs/troubleshooting#gke_service_account_deleted for more info.

J'ai essayé de donner au compte ci le rôle de maître d'ouvrage mais j'ai quand même eu cette erreur.

J'ai essayé de désactiver et de réactiver le service Kubernetes mais cela n'a pas aidé.

Aucune idée sur la façon de résoudre ça? J'essaye de le résoudre depuis 4 jours ...

6
Naor

Je crois que ce n'est pas le compte de service CI mais le compte de service k8s utilisé pour gérer votre cluster GKE, où son e-mail devrait ressembler à ceci (quelqu'un doit l'avoir supprimé):

k8s-service-account@<project-id>.iam.gserviceaccount.com

sa

Vous pouvez le recréer et lui accorder des autorisations de propriétaire de projet.

recreate

0
Rico

Les détails des erreurs mentionnées ci-dessus sont expliqués dans ce centre d'aide article.

Pour ajouter le compte de service Kubernetes Engine (si vous ne l'avez pas), veuillez exécuter la commande suivante, afin de recréer correctement le compte de service Kubernetes avec le rôle "Kubernetes Engine Service Agent",

gcloud services enable container.googleapis.com
0
Digil

Étape 1: gcloud init

Étape 2: Sélectionnez [2] Créez une nouvelle configuration

Étape 3: entrez le nom de la configuration. Les noms commencent par une lettre minuscule et contiennent uniquement des lettres minuscules a-z, des chiffres 0 à 9 et des tirets "-": kubernetes-service-account

Étape 4: Choisissez le compte que vous souhaitez utiliser pour effectuer des opérations pour cette configuration: [2] Connectez-vous avec un nouveau compte

Étape 5: Voulez-vous continuer (O/n)? y

Étape 6: Copiez collez le lien vers brwoser et connectez-vous avec l'ID utilisé pour créer votre compte Google Cloud

Étape 7: copiez le code de vérification fourni par google après la connexion et collez-le dans la console.

Étape 8: Choisissez le projet cloud à utiliser:

Étape 9: Voulez-vous configurer une région et une zone de calcul par défaut? (O/n)? y

Étape 10: Veuillez saisir un choix numérique ou une valeur de texte (doit correspondre exactement à l'élément de la liste): 8

Votre SDK Google Cloud est configuré et prêt à l'emploi!

0
Robin Varghese