团队,我在kubernetes上具有以下集群角色,允许访问所有内容,但我不想限制节点级命令并允许所有其余的。
下面要修改什么?基本上,用户应该能够运行
kubectl get all --all-namespaces
但不应显示节点信息
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
labels:
kubernetes.io/bootstrapping: rbac-defaults
name: cluster-admin-test
rules:
- apiGroups:
- '*'
resources:
- '*'
verbs:
- '*'
- nonResourceURLs:
- '*'
verbs:
- '*'
规则纯粹是附加的,意味着您不能限制规则。
因此,您需要列出所有可访问的resources,但需要使用适当的operations列出“节点”
例如:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
labels:
kubernetes.io/bootstrapping: rbac-defaults
name: cluster-admin
rules:
- apiGroups: [""]
resources: ["pods","services","namespaces","deployments","jobs"]
verbs: ["get", "watch", "list"]
此外,强烈建议不要更改cluster-admin角色。创建新角色并为其分配用户是值得的。