Kubernetes 即使我是所有者和管理员,也无法在GKE中创建群集角色

Kubernetes 即使我是所有者和管理员,也无法在GKE中创建群集角色,kubernetes,google-cloud-platform,rbac,google-kubernetes-engine,Kubernetes,Google Cloud Platform,Rbac,Google Kubernetes Engine,创建新的GKE群集后,创建群集角色失败,错误如下: Error from server (Forbidden): error when creating "./role.yaml": clusterroles.rbac.authorization.k8s.io "secret-reader" is forbidden: attempt to grant extra privileges: [PolicyRule{Resources:["secr

创建新的GKE群集后,创建群集角色失败,错误如下:

Error from server (Forbidden): error when creating "./role.yaml":
clusterroles.rbac.authorization.k8s.io "secret-reader" is forbidden: 
attempt to grant extra privileges: [PolicyRule{Resources:["secrets"], 
APIGroups:[""], Verbs:["get"]} PolicyRule{Resources:["secrets"], 
APIGroups:[""], Verbs:["watch"]} PolicyRule{Resources:["secrets"], 
APIGroups:[""], Verbs:["list"]}] user=&{XXX@gmail.com  
[system:authenticated] map[authenticator:[GKE]]} ownerrules= . 
[PolicyRule{Resources:["selfsubjectaccessreviews" 
"selfsubjectrulesreviews"], APIGroups:["authorization.k8s.io"], Verbs: 
["create"]} PolicyRule{NonResourceURLs:["/api" "/api/*" "/apis" 
"/apis/*" "/healthz" "/swagger-2.0.0.pb-v1" "/swagger.json" 
"/swaggerapi" "/swaggerapi/*" "/version"], Verbs:["get"]}] 
ruleResolutionErrors=[]
我的帐户在IAM中具有以下权限:

库伯内特斯引擎管理员

Kubernetes引擎群集管理

所有者

这是我的
角色。yaml
(来自:

根据法律,我需要

创建角色绑定,在尝试创建其他角色或ClusterRole权限之前,为您的Google标识提供群集管理员角色

所以我试着:

它成功了,但是我在创建集群角色时仍然遇到相同的错误


知道我做错了什么吗?

这是正确的解决方案。GCP\U用户获得的信息是否与
XXX@gmail.com
角色创建错误消息中的用户名?

根据,您必须首先创建一个角色绑定,授予您要创建的角色中包含的所有权限

获取当前谷歌身份 将群集管理授予您的当前标识 现在,您可以毫无问题地创建ClusterRole


我在CoreOS中找到了答案,请查看以了解更多信息。

@S.Heutmaker的评论引导我找到了解决方案

对我来说,解决方案是在电子邮件地址上创建具有正确大小写的群集管理绑定

$ kubectl create clusterrolebinding myname-cluster-admin-binding --clusterrole=cluster-admin --user=MyName@example.org

如果大小写正确,请尝试添加两个googlemail域变体(即
@gmail.com
@googlemail.com
)。对我来说,
gcloud info | grep帐户
返回了
@googlemail.com
,但我必须创建一个与
@gmail.com
绑定的clusterrole,才能使命令生效。

是的,GCP|u用户的电子邮件地址相同。这包括大小写吗?FirstLast@gmail.com不一样firstlast@gmail.com@大约一个小时后如果遇到挫折,您关于区分大小写的提示刚刚解决了我的问题。感谢您的敏锐眼光。您在此期间找到了解决方案吗?这不起作用。我收到错误“clusterrolebindings.rbac.authorization.k8s.io被禁止:User”mail@mydomain.com“无法在群集作用域中创建clusterrolebindings.rbac.authorization.k8s.io:必需”container.clusterRoleBindings.create“权限。您需要在GKE中被授予
Kubernetes引擎管理员
角色,仅凭
编辑器
是不够的。
export GCP_USER=$(gcloud config get-value account | head -n 1)
kubectl create clusterrolebinding cluster-admin-binding
--clusterrole=cluster-admin --user=$GCP_USER
$ gcloud info | grep Account

Account: [myname@example.org]
$ kubectl create clusterrolebinding myname-cluster-admin-binding --clusterrole=cluster-admin --user=myname@example.org

Clusterrolebinding "myname-cluster-admin-binding" created
$ kubectl create clusterrolebinding myname-cluster-admin-binding --clusterrole=cluster-admin --user=MyName@example.org