web-dev-qa-db-ja.com

権限エラーgcloud.container.clusters.get-credentialsを取得し続ける

CircleCiをgcloud Kubernetesエンジンと統合しようとしています。

  1. Kubernetes Engine DeveloperとStorage Adminの役割を持つサービスアカウントを作成しました。
  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サービスを無効にして再度有効にしようとしましたが、役に立ちませんでした。

これを解決する方法はありますか? 4日間解決しようとしています...

6
Naor

CIサービスアカウントではなく、GKEクラスタの管理に使用されるk8sサービスアカウントであると思います。メールは次のようになります(誰かが削除したはずです)。

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

sa

これを再作成して、プロジェクトオーナーの権限を付与できます。

recreate

0
Rico

上記のエラーの詳細は このヘルプセンター の記事で説明されています。

Kubernetes Engineサービスアカウントを追加するには(持っていない場合)、次のコマンドを実行して、「Kubernetes Engineサービスエージェント」の役割を持つKubernetesサービスアカウントを適切に再作成します。

gcloud services enable container.googleapis.com
0
Digil

ステップ1:gcloud init

ステップ2:[2] Create a new configurationを選択します

ステップ3:構成名を入力します。名前は小文字で始まり、小文字のa〜z、数字の0〜9、およびハイフン「-」のみを含みます。kubernetes-service-account

手順4:この構成の操作を実行するために使用するアカウントを選択します。[2]新しいアカウントでログインします

ステップ5:続行しますか(Y/n)? y

ステップ6:brwoserへのリンクをコピーして貼り付け、Google Cloudアカウントの作成に使用されるIDでログインします

手順7:ログイン後にGoogleから提供された確認コードをコピーして、コンソールに貼り付けます。

ステップ8:使用するクラウドプロジェクトを選択:

ステップ9:デフォルトのコンピューティングリージョンとゾーンを構成しますか? (はい/いいえ)? y

ステップ10:数値の選択またはテキスト値を入力してください(リスト項目と完全に一致する必要があります):8

Google Cloud SDKが構成され、使用できるようになりました!

0
Robin Varghese