我正在运行kubernetes v1.11.5并且我正在为每个命名空间安装带有分蘖部署的头盔。让我们专注于一个命名空间。这是分蘖服务帐户配置:
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiller
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: tiller-manager
namespace: marketplace-int
rules:
apiGroups:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: tiller-binding
namespace: marketplace-int
subjects:
namespace: marketplace-int
roleRef:
kind: Role
name: tiller-manager
apiGroup: rbac.authorization.k8s.io
当我尝试部署图表时,我收到此错误:
Error: release citest failed: roles.rbac.authorization.k8s.io "marketplace-int-role-ns-admin" is forbidden:
attempt to grant extra privileges:
[{[] [] [*] [] []}] user=&{system:serviceaccount:marketplace-int:tiller 5c6af739-1023-11e9-a245-0ab514dfdff4
[system:serviceaccounts system:serviceaccounts:marketplace-int system:authenticated] map[]}
ownerrules=[{[create] [authorization.k8s.io] [selfsubjectaccessreviews selfsubjectrulesreviews] [] []}
{[get] [] [] [] [/api /api/ /apis /apis/ /healthz /openapi /openapi/ /swagger-2.0.0.pb-v1 /swagger.json /swaggerapi /swaggerapi/ /version /version/]}
{[] [ extensions apps rbac.authorization.k8s.io roles.rbac.authorization.k8s.io authorization.k8s.io] [] [] []}] ruleResolutionErrors=[]
尝试为该命名空间创建rbac配置时出现错误(使用tiller sa):
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
labels:
app: citest
chart: marketplace-0.1.0
heritage: Tiller
release: citest
namespace: marketplace-int
name: marketplace-int-role-ns-admin
rules:
这是由于RBAC中的权限升级预防。有关详细信息,请参阅https://kubernetes.io/docs/reference/access-authn-authz/rbac/#privilege-escalation-prevention-and-bootstrapping。
创建角色对象的权限是必要的,但还不够。
如果至少满足下列条件之一,则用户只能创建/更新角色:
它们已具有角色中包含的所有权限,与要修改的对象的范围相同(ClusterRole的群集范围,在同一命名空间内或角色的群集范围内)。在您的情况下,这意味着尝试创建角色的用户必须已apiGroups=, resources=, verbs=*在其尝试创建角色的命名空间内具有权限。您可以通过使用rolebinding将cluster-admin clusterrole授予该命名空间中的serviceaccount来授予此权限。
他们被明确许可在rbac.authorization.k8s.io API组中的角色或群集资源上执行“升级”动词(Kubernetes 1.12和更新版本)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。