Kubernetes 即使我是所有者和管理员,也无法在GKE中创建群集角色
创建新的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
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