如何为命名空间中的所有服务帐户提供相同的集群角色



我在命名空间prometheus中有一组服务帐户,我有一个集群角色来读取集群中的所有pod。我如何构建ClusterRoleBinding来做到这一点?

如果您转到K8s文档中关于使用RBAC授权

向下滚动到示例,您可以看到以下示例:

对于";qa";命名空间:

subjects:
- kind: Group
name: system:serviceaccounts:qa
apiGroup: rbac.authorization.k8s.io

您现在可以使用它并应用于您的用例:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
creationTimestamp: null
name: <some-fancy-name>
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: <clusterrolename>
subjects:
- kind: Group
name: system:serviceaccounts:prometheus
apiGroup: rbac.authorization.k8s.io

还有一个不同的例子值得注意:

  1. 将角色授予命名空间中的所有服务帐户

如果您希望命名空间中的所有应用程序都有一个角色,无论他们使用什么服务帐户,您可以向该服务授予角色该命名空间的帐户组。

例如,在";我的命名空间";对所有人该名称空间中的服务帐户:

kubectl create rolebinding serviceaccounts-view 
--clusterrole=view 
--group=system:serviceaccounts:my-namespace 
--namespace=my-namespace

最新更新