我正在尝试在私有群集中创建一个新的ClusterRole,我正在从一个Jumpbox管理,但一直打“禁止:尝试授予额外的权限”错误。
我通过gcloud作为默认计算服务帐户进行身份验证,并且具有Kubernetes Engine Admin角色。
我使用了为gcloud服务帐户创建了一个集群角色绑定
kubectl create ClusterRoleBinding sa-admin-binding --ClusterRole=cluster-admin --User=xxxxxxxx-service-account@xxxx.developer.gserviceaccount.com
当我尝试创建群集角色但是我收到以下错误。
服务器出错(禁止):创建“role.yml”时出错:clusterroles.rbac.authorization.k8s.io“pod-viewer”被禁止:尝试授予额外权限:[{[list] [] [pods] [ ] []}] user =&{ 115268482330004182284 [system:authenticated] map [user-assertion.cloud.google.com:[AKUJVpkbsn ........
我不明白的是,为什么错误会带有“编号”用户帐户,而不是我通过身份验证的服务帐户。
我可以使用我自己的gmail帐户将ClusterRoleBinding添加到cluster-admin,使用我自己的帐户进行身份验证,然后创建新角色而不会出现问题,但是为服务帐户添加了clusterrolebinding,并且认证为该服务帐户似乎没有授予创建角色的权限。
有趣的是,我可以使用上面的错误中的编号帐户添加clusterrolebinding,这也有效,但不能帮助我编写设置脚本,因为我不知道该数字是提前的,也不是它的来源。
帐户实际上是gclouds IAM控制台中服务帐户的“uniqueId”。不知道为什么它使用的服务帐户,但对于用户帐户,它使用电子邮件地址,但这是我现在使用的..
CLUSTER_ADMIN_ID=gcloud iam service-accounts describe <my-service-account>@<my-project>.iam.gserviceaccount.com --format="value(uniqueId)"
其次是
kubectl create ClusterRoleBinding -cluster-admin --clusterrole=cluster-admin --user=$CLUSTER_ADMIN_ID
这允许服务帐户现在管理群集。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。