Kubernetes 为什么从我的主机使用gcloud命令而不是gcloud交互式shell如此困难?
也许我只是有点困惑,但基本上我正试图通过我自己的主机(Mac)终端而不是提供的gcloud交互shell使用Kubernetes 为什么从我的主机使用gcloud命令而不是gcloud交互式shell如此困难?,kubernetes,google-cloud-platform,gcloud,Kubernetes,Google Cloud Platform,Gcloud,也许我只是有点困惑,但基本上我正试图通过我自己的主机(Mac)终端而不是提供的gcloud交互shell使用gcloudcli来建立我的工作流程 我正在通过运行以下命令与IAM成员进行身份验证: gcloud身份验证登录 它会将我带到Google Cloud登录页面,我成功地通过了该页面的身份验证,然后在我的shell中获得以下内容: You are now logged in as [MY_EMAIL@gmail.com]. Your current project is [mypropert
gcloud
cli来建立我的工作流程
我正在通过运行以下命令与IAM成员进行身份验证:
gcloud身份验证登录
它会将我带到Google Cloud登录页面,我成功地通过了该页面的身份验证,然后在我的shell中获得以下内容:
You are now logged in as [MY_EMAIL@gmail.com].
Your current project is [myproperty-1537056464248]. You can change this setting by running:
$ gcloud config set project PROJECT_ID
在此之后,我尝试发出以下命令:
gcloud container clusters create somename
我得到以下错误消息:
ERROR: (gcloud.container.clusters.create) ResponseError: code=400, message=Project "myproperty-1537056464248" has no network named "default".
我的IAM用户具有以下角色:
Kubernetes引擎群集管理
所有者
我应该改用服务帐户吗?您遇到了两个明显的错误:
$ gcloud compute networks list
NAME SUBNET_MODE BGP_ROUTING_MODE IPV4_RANGE GATEWAY_IPV4
default AUTO REGIONAL
如果您创建一个全新的项目,它应该有一个“默认”网络
或者,您可以使用以下选项指定现有网络:
gcloud container clusters create somename --network=put-existing-network-here
$ gcloud projects get-iam-policy PROJECT_ID
- members:
- user:username@somedomain.com
role: roles/owner
新项目应该有一个名为
default
的网络,但我不知何故最终得到了一个根本没有任何网络的网络(这使我看到了同样的错误)
创建一个后
gcloud compute networks create default
我能够创建一个GKE集群,如下所示:
gcloud container clusters create mattscluster --zone us-west2 --machine-type e2-standard-2
在SDK中,重新检查您使用的是最新版本“$gcloud components update”;错误消息提示可能在当前项目中找不到“默认”网络,因此您可以尝试以下操作:“$gcloud container clusters create test cluster--num nodes=3--subnetwork=default”…确保指出创建的网络名称。关于在项目上使用IAM的权限,您可以按角色限制/允许操作。。在您的情况下,我认为所有者rol可以发布项目中的所有命令。更多信息:@J.Rojas谢谢,这让我意识到谷歌已经把我的旧(删除的)项目设置好了(这就是问题所在)。所以我更新了它,但是现在我在创建集群时遇到了一个新问题:
ERROR:
即使我分配了以下角色:Compute Admin,Compute Instance Admin(v1)、Compute Network Admin、Kubernetes Engine Cluster Admin、Editor、Owner
给IAM用户。事实证明,gcloud已将我的默认项目设置为我的旧项目(我几天前删除的项目),我刚刚更新了它,使其使用新项目进行设置。不幸的是,现在当我使用以下命令创建集群时:gcloud容器集群创建somename--network=default
我得到了一个可怕的错误:错误:(gcloud.container.clusters.create)ResponseError:code=403,message=Google Compute Engine:Required'Compute.networks.get'permission for'projects/myproperty-237306/global/networks/default'。
ju,项目中有权限角色;因此,您的用户具有所有者角色,这是出乎意料的(我认为),但是如果我是您,我应该使用google doc()描述的角色之一进行设置,其中包含您的案例所需的“compute.networks.get”权限。例如:roles/compute.instanceAdmin。如果不起作用,你可以和他们一起打开一个内部案例。IAM角色一开始有点棘手。@bob_cobb的答案更新了,包括如何检查项目的IAM角色。@Everton这实际上帮助我进一步调试我的问题。最终,我不得不重新启用服务帐户,因为在某个时候它被删除了。非常感谢。