云容器集群创建`compute.networks.get`权限错误

我正在尝试使用GKE创建集群。我有一个已经在使用的项目。

我跑步时

def config_device(computing_device):
if 'gpu' in computing_device:
    device_number = computing_device.rsplit(':',1)[1]
    os.environ["CUDA_VISIBLE_DEVICES"] = device_number
# with tf.device(computing_device):

gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
    try:
        # Currently,memory growth needs to be the same across GPUs
        for gpu in gpus:
            tf.config.experimental.set_memory_growth(gpu,True)
        logical_gpus = tf.config.experimental.list_logical_devices('GPU')
        print(len(gpus),"Physical GPUs,",len(logical_gpus),"Logical GPUs")
    except RuntimeError as e:
        # Memory growth must be set before GPUs have been initialized
        print(e)

我得到以下信息:

错误:(gcloud.container.clusters.create)ResponseError:代码= 403,消息= Google Compute Engine:对“项目//全局/网络/默认”具有必需的“ compute.networks.get”权限。

当我使用Web UI时也会发生同样的事情。我的服务帐户和用户都具有所有者角色。

我尝试了以下方法来使集群创建命令起作用:

  1. 我尝试为现有服务帐户的项目添加策略绑定:
gcloud container clusters create cluster1
  1. 我读到启用容器api服务是必需的

gcloud projects add-iam-policy-binding <my-project> \ --member serviceaccount:<my-user>@<my-project>.iam.gserviceaccount.com \ --role roles/compute.admin

  1. 重新开始。我删除了服务帐户,创建了一个新帐户,并通过以下方式激活了凭据:
gcloud services enable container.googleapis.com
  1. 我还尝试了与我的帐户用户进行身份验证:
gcloud auth activate-service-account <my-user>@<my-project>.iam.gserviceaccount.com --key-file ${GOOGLE_APPLICATION_CREDENTIALS}

这些都不起作用,我无法创建集群

hellobaby12321 回答:云容器集群创建`compute.networks.get`权限错误

我想我会在这里回答我自己的问题。来自service account docs

  

使用GCP控制台创建新的Cloud项目时,如果为项目启用了Compute Engine API,则默认情况下会为您创建一个Compute Engine服务帐户。使用电子邮件可以识别它:

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。如果已启用,请将其禁用,然后再次启用。

,

我认为您应该设置计算引擎服务帐户权限:

 gcloud projects add-iam-policy-binding <my-project> \
--member [PROJECT_NUMBER]-compute@developer.gserviceaccount.com \
--role  roles/compute.admin
本文链接:https://www.f2er.com/3137049.html

大家都在问