3

我想通过 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 的云帐户是项目的所有者和相关权力,所以我预计权限没有问题。

4

1 回答 1

3

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

当您拥有所有者权利时,您就可以对流程进行初始“踢”以使一切开始。此时服务帐户开始进入流程,他们会自动为您创建所有资源。

这些服务帐户具有不同的权力和权限(可以自定义),以限制攻击面,以防其中一个被破坏并保持某种秩序,例如,您将拥有****-compute@developer.gservuceaccount.com一个默认计算引擎服务帐户.

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

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

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

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

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

  • 在这里您可以找到一些默认服务帐户的更深入的解释。

  • 在这里,您可以找到有关如何重新启用 Kubernetes Engine 的默认服务帐号的小指南:

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

于 2018-04-25T15:30:09.447 回答