Продолжайте получать права доступа gcloud.container.clusters.get-credentials - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь интегрировать CircleCi с gcloud Kubernetes Engine.

  1. Я создал служебную учетную запись с ролями Kubernetes Engine Developer и администратором хранилища.
  2. Создан файл CircleCi yaml и настроен CI.

Часть моего файла yaml включает в себя:

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}

Все работает отлично, за исключением последней команды:

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

С ошибкой происходит сбой:

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.

Я пытался присвоить учетной записи ci роль владельца проекта, но все еще получал эту ошибку.

Я пытался отключить и снова включить службу Kubernetes, но это не помоглоt help.

Есть идеи, как это решить?Я пытаюсь решить это в течение 4 дней ...

Ответы [ 3 ]

0 голосов
/ 22 ноября 2018

Подробности вышеупомянутых ошибок объяснены в этой статье справочного центра статья.

Чтобы добавить учетную запись службы Kubernetes Engine Service (если у вас ее нет), пожалуйста, запуститеСледующая команда для правильного воссоздания учетной записи службы Kubernetes с ролью «Агент службы Kubernetes Engine»,

gcloud services enable container.googleapis.com
0 голосов
/ 13 июня 2019

Шаг 1: gcloud init

Шаг 2: Выберите [2] Создать новую конфигурацию

Шаг 3: Введите имя конфигурации.Имена начинаются со строчной буквы и содержат только строчные буквы az, цифры 0-9 и дефисы '-': kubernetes-service-account

Шаг 4. Выберите учетную запись, которую хотите использовать для выполненияоперации для этой конфигурации: [2] Войдите в систему с новой учетной записью

Шаг 5: Продолжить (Да / Нет)?y

Шаг 6: Скопируйте, вставьте ссылку на brwoser и войдите в систему с идентификатором, который используется для создания вашей учетной записи Google Cloud

Шаг 7: Скопируйте код подтверждения, предоставленный Google после входа в систему, и вставьтеэто в консоль.

Шаг 8: Выберите проект облака для использования:

Шаг 9: Вы хотите настроить область и зону вычислений по умолчанию?(Y / N)?y

Шаг 10. Пожалуйста, введите числовой выбор или текстовое значение (должно точно соответствовать элементу списка): 8

Ваш Google Cloud SDK настроен и готов к использованию!

0 голосов
/ 22 ноября 2018

Я считаю, что это не учетная запись службы CI, а учетная запись службы k8s, используемая для управления вашим кластером GKE, где его электронная почта должна выглядеть следующим образом (кто-то должен был удалить ее):

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

sa

Вы можете воссоздать его и дать ему права владельца проекта.

recreate

...