云容器集群创建“compute.networks.get”权限错误
Cloud container clusters create `compute.networks.get` permission error
我正在尝试使用 GKE 创建集群。我有一个我已经在使用的项目。
当我运行
gcloud container clusters create cluster1
我得到以下信息:
错误:(gcloud.container.clusters.create)ResponseError:代码=403,消息=Google计算引擎:'projects//global/networks/default'.
需要'compute.networks.get'权限
当我使用网络时也会发生同样的事情 UI。我的服务帐户和我的用户都有所有者角色。
我尝试了以下方法来使集群创建命令起作用:
- 我尝试为现有服务帐户的项目添加策略绑定:
gcloud projects add-iam-policy-binding <my-project> \
--member serviceAccount:<my-user>@<my-project>.iam.gserviceaccount.com \
--role roles/compute.admin
- 我读到启用容器 api 需要服务
gcloud services enable container.googleapis.com
- 重新开始。我删除了服务帐户,创建了一个新帐户并使用以下命令激活了信用:
gcloud auth activate-service-account <my-user>@<my-project>.iam.gserviceaccount.com --key-file ${GOOGLE_APPLICATION_CREDENTIALS}
- 我还尝试使用我的帐户用户进行身份验证:
gcloud auth login
None 这些工作,我无法创建集群
我认为您应该设置计算引擎服务帐户权限:
gcloud projects add-iam-policy-binding <my-project> \
--member [PROJECT_NUMBER]-compute@developer.gserviceaccount.com \
--role roles/compute.admin
我想我会在这里回答我自己的问题。来自 service account docs
When you create a new Cloud project using GCP Console and if Compute Engine API is enabled for your project, a Compute Engine Service account is created for you by default. It is identifiable using the email:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
我以某种方式删除了默认创建的服务帐户和可能的关联角色。我想这就是为什么我不能再在我的项目下创建集群的原因了。我决定最好开始一个新项目,而不是试图弄清楚如何重新创建。之后,集群创建 API 并且控制台工作正常。
调试:
gcloud container subnets list-usable --project service-project --network-project shared-vpc-project
如果您在输出中收到警告:
WARNING: Failed to get metadata from network project. GCE_PERMISSION_DENIED:
Google Compute Engine: Required 'compute.projects.get' permission for
'projects/shared-vpc-project'
这意味着您的 google 宿主项目中的托管 gke 服务帐户不存在。
要解决转至托管项目 api 并启用 Kubernetes Engine API。如果已启用,请将其禁用并重新启用。
我正在尝试使用 GKE 创建集群。我有一个我已经在使用的项目。
当我运行
gcloud container clusters create cluster1
我得到以下信息:
错误:(gcloud.container.clusters.create)ResponseError:代码=403,消息=Google计算引擎:'projects//global/networks/default'.
需要'compute.networks.get'权限当我使用网络时也会发生同样的事情 UI。我的服务帐户和我的用户都有所有者角色。
我尝试了以下方法来使集群创建命令起作用:
- 我尝试为现有服务帐户的项目添加策略绑定:
gcloud projects add-iam-policy-binding <my-project> \
--member serviceAccount:<my-user>@<my-project>.iam.gserviceaccount.com \
--role roles/compute.admin
- 我读到启用容器 api 需要服务
gcloud services enable container.googleapis.com
- 重新开始。我删除了服务帐户,创建了一个新帐户并使用以下命令激活了信用:
gcloud auth activate-service-account <my-user>@<my-project>.iam.gserviceaccount.com --key-file ${GOOGLE_APPLICATION_CREDENTIALS}
- 我还尝试使用我的帐户用户进行身份验证:
gcloud auth login
None 这些工作,我无法创建集群
我认为您应该设置计算引擎服务帐户权限:
gcloud projects add-iam-policy-binding <my-project> \
--member [PROJECT_NUMBER]-compute@developer.gserviceaccount.com \
--role roles/compute.admin
我想我会在这里回答我自己的问题。来自 service account docs
When you create a new Cloud project using GCP Console and if Compute Engine API is enabled for your project, a Compute Engine Service account is created for you by default. It is identifiable using the email:
PROJECT_NUMBER-compute@developer.gserviceaccount.com
我以某种方式删除了默认创建的服务帐户和可能的关联角色。我想这就是为什么我不能再在我的项目下创建集群的原因了。我决定最好开始一个新项目,而不是试图弄清楚如何重新创建。之后,集群创建 API 并且控制台工作正常。
调试:
gcloud container subnets list-usable --project service-project --network-project shared-vpc-project
如果您在输出中收到警告:
WARNING: Failed to get metadata from network project. GCE_PERMISSION_DENIED:
Google Compute Engine: Required 'compute.projects.get' permission for
'projects/shared-vpc-project'
这意味着您的 google 宿主项目中的托管 gke 服务帐户不存在。
要解决转至托管项目 api 并启用 Kubernetes Engine API。如果已启用,请将其禁用并重新启用。