" gcloud容器集群创建"命令抛出"错误必需' compute.networks.get'"

时间:2018-04-25 11:22:09

标签: google-cloud-platform gcloud google-kubernetes-engine google-cloud-console

我想通过gcloud命令创建GKE集群。但我无法解决这个错误:

$ gcloud container clusters create myproject --machine-type=n1-standard1# --zone=asia-northeast1-a

ERROR: (gcloud.container.clusters.create) ResponseError: code=403, message=Google 
Compute Engine: Required 'compute.networks.get' permission for 
'projects/myproject/global/networks/default'

链接到我的Gmail的云帐户是项目的所有者和相对权力,因此我预计权限没有问题。

1 个答案:

答案 0 :(得分:3)

通过$ gcloud container clusters create命令创建群集时,请记住隐藏了数百个操作。

如果您拥有所有者权利,那么您可以提供最初的"踢"让一切都开始的过程。此时Service accounts开始进入流程,他们会自动为您创建所有资源。

这些服务帐户具有不同的权限和权限(可以自定义)以限制攻击面,以防其中一个遭到攻击并保持一种顺序,例如****-compute@developer.gservuceaccount.com这是一个默认的计算引擎服务帐户。

当您启用不同的API时,可以创建其中一些服务帐户,以使组件按预期工作,但如果其中一个被删除或修改,您可能会面临您遇到的错误之一。

  

通常,解决问题的最简单方法是重新创建服务帐户,例如删除它并禁用启用相应的API。

  • 例如,当您启用Kubernetes引擎service-****@container-engine-robot-iam-gaservice account is created

在我的测试项目中,例如我修改了他们删除" Kubernetes Engine服务代理"权限和我修改了Google API服务帐户,将其设置为"项目查看器"我面临着创建和删除集群的权限问题。

您可以浏览IAM&Amin-->admin以检查状态以及项目当前授权的服务帐户。

  • Here您可以找到有关某些默认服务帐户的更深入说明。

  • Here您可以找到有关如何重新启用Kubernetes Engine的默认服务帐户的小指南:

  

"如果从服务帐户中删除此角色绑定,则默认服务帐户将从项目中解除绑定,这可能会阻止您部署应用程序并执行其他群集操作。"