CircleCiをgcloud Kubernetesエンジンと統合しようとしています。
私の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日間解決しようとしています...
上記のエラーの詳細は このヘルプセンター の記事で説明されています。
Kubernetes Engineサービスアカウントを追加するには(持っていない場合)、次のコマンドを実行して、「Kubernetes Engineサービスエージェント」の役割を持つKubernetesサービスアカウントを適切に再作成します。
gcloud services enable container.googleapis.com
ステップ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が構成され、使用できるようになりました!