gcpug / nouhau

Google Cloud Platformのノウハウを共有するRepository
https://gcpug.jp
MIT License
653 stars 23 forks source link

GKE 1.10からGCP Scopeの指定方法が変わる #66

Closed sinmetal closed 5 years ago

sinmetal commented 5 years ago

WHAT

GKE 1.10から、GCP Scopeの指定の方法が変更される。 元々はCluster作成時に指定し、全てのNodePoolが同じ設定になるようになっていた。 GKE1.10からは、NodePool追加時にGCP Scopeを指定できるようになった。 それに伴いDefaultのScopeが変わっている。 Scopeの指定がない場合、以下のようなScopeが設定される。 image

Cloud Consoleには2018/10/01時点では、NodePool追加時にGCP Scopeを設定する機能が無いため、必ず上記の gke-default になってしまう。 指定したい場合は、 gcloud container node-pools create でNodePoolを作成してやる必要がある。以下はCommandのExample

gcloud container node-pools create core8pool --cluster sinmetal-tokyo --zone asia-northeast1-b --enable-autoscaling --max-nodes 8 --min-nodes 1 --scopes https://www.googleapis.com/auth/cloud-platform --machine-type n1-highcpu-8

https://cloud.google.com/sdk/gcloud/reference/container/node-pools/create

WHY

GKEでDefault Service Account使っていて、GCP Scopeを指定してる人が苦しまないように書いたTips しんめたるはテスト環境で雑にFull Scope指定してCluster作ってたので、新しいNodePoolをCloud Consoleから追加したら、全部Permission Deniedになって、苦しんだ。

apstndb commented 5 years ago

そういえば GKE でのデフォルトサービスアカウントの scope の変更自体が非推奨になっていますね。 https://cloud.google.com/kubernetes-engine/docs/tutorials/authenticating-to-cloud-platform?hl=en#why_use_service_accounts

Updating the default service account’s permissions or assigning more access scopes to compute instances is not the recommended way to authenticate to other Cloud Platform services from Pods running on GKE.

GCE でもスコープの設定はレガシーと書かれるようになった。 https://cloud.google.com/compute/docs/access/service-accounts?hl=en#accesscopesiam

Access scopes are the legacy method of specifying permissions for your instance.

sinmetal commented 5 years ago

薄々思ってたけど、やはりそういう時代になったか!