Google Cloud Kubernetes群集无法连接节点或删除?

时间:2018-05-14 07:17:18

标签: kubernetes google-cloud-platform google-kubernetes-engine google-cloud-iam

我正在使用谷歌云Kubernetes服务它一直在工作,直到我意外删除了kubernetes服务帐户的服务帐户。我创建了kubernetes服务帐户。我无法连接到节点删除或删除我的群集。似乎是许可问题。也无法删除计算机引擎。当我删除kubernetes集群后出现错误

  

(1)Google Compute Engine:'projects / projectid / global / firewalls / gke-kubeworld-383ec9cd-vms'所需的'compute.firewalls.delete'权限

     

(2)Google Compute Engine:'projects / projectid / global / firewalls / gke-kubeworld-383ec9cd-ssh'所需的'compute.firewalls.delete'权限

     

(3)Google Compute Engine:'projects / projectid / global / firewalls / gke-kubeworld-383ec9cd-all'所需的'compute.firewalls.delete'权限

     

(4)Google Compute Engine:'projects / projectid / zones / us-central1-a / instanceGroupManagers / gke-kubeworld-default-pool-90dd280e-grp'      

(5.1)Google Compute Engine:'projects / projectid'所需的'compute.routes.list'权限

     

(5.2)Google Compute Engine:'projects / projectid'所需的'compute.projects.get'权限

如何配置或授予访问权限以允许这些权限。

2 个答案:

答案 0 :(得分:0)

这些错误还取决于项目的整体情况。 Compute Engine服务帐户管理大量服务,因此在删除它时,错误会有不同的风格。

当我删除SA时,我总是做同样的事情,作为第一步。我没有继续手动创建服务帐户,而是启用了需要Compute Engine API的API,例如Dataproc API。这应该重新创建Compute Engine服务帐户,在这种情况下,因为它是相关的,它还重新创建了Kubernetes Engine服务帐户。

重新创建这些帐户后,您应该有不同的错误,因为现在SA就在那里,但是群集期望的令牌/凭证可能是旧的,但现在您传递的是新令牌。

你能否确认这样做会得到相同的错误或不同?我收到此信息后,我会编辑帖子。

答案 1 :(得分:0)

重新创建后,您的服务帐户会丢失角色。

首先,使用gcloud auth login并登录GCE帐户。

创建新服务帐户后,需要为其分配角色。

在这种情况下,错过了“roles / compute.admin”角色,需要重新分配。 我假设您知道您创建的服务帐户的名称。

这可能会有所帮助:

gcloud projects add-iam-policy-binding  project-id \
    --member serviceAccount:service-account@project-id.iam.gserviceaccount.com \
    --role  roles/compute.admin

AIM roles documentation描述。

编辑:我发现这是另一种解决方法:

gcloud service-management enable container.googleapis.com