我在命名空间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
还有一个不同的例子值得注意:
- 将角色授予命名空间中的所有服务帐户
如果您希望命名空间中的所有应用程序都有一个角色,无论他们使用什么服务帐户,您可以向该服务授予角色该命名空间的帐户组。
例如,在";我的命名空间";对所有人该名称空间中的服务帐户:
kubectl create rolebinding serviceaccounts-view --clusterrole=view --group=system:serviceaccounts:my-namespace --namespace=my-namespace