0

我在 GCP 中创建了一个特定的服务帐户,用于在我的项目中配置集群:

gcloud iam service-accounts create [sa_name]

gcloud projects add-iam-policy-binding \
    [project_id] \
    --role=roles/container.admin \
    --member=serviceAccount:[sa_name]@[project_id].iam.gserviceaccount.com

gcloud iam service-accounts keys create [keyfile_name] \
  --iam-account=[sa_name]@[project_id].iam.gserviceaccount.com

gcloud auth activate-service-account --key-file=[keyfile_name]

当我运行命令时gcloud container clusters create [cluster_name]

我总是得到:

错误:(gcloud.container.clusters.create) ResponseError: code=403, message=“projects/context-platform-staging”所需的“container.clusters.create”权限。有关详细信息,请参阅 https://cloud.google.com/kubernetes-engine/docs/troubleshooting#gke_service_account_deleted

如您所见,我使用roles/container.admin但我什至尝试将roles/editorandroles/owner应用于此服务帐户,行为相同。

到目前为止,此命令起作用的唯一方法是使用我的主要谷歌所有者帐户(不是服务帐户)。

我在这里想念什么?

4

1 回答 1

0

从错误消息中,我了解到服务帐户没有“container.clusters.create”权限。

请在创建集群的服务帐户上添加“容器引擎集群管理员”和“容器引擎管理员”角色:。

要创建集群,您需要对项目具有“container.clusters.create”权限。您还需要将角色“roles/iam.serviceAccountUser”分配给将使用服务帐户的用户。这样用户就可以访问GKE的服务帐号了。

有关更多信息和深入教程,请参阅GCP 文档中的这篇文章

于 2018-12-04T12:56:07.647 回答