允许访问 kubernetes 集群上除获取节点之外的所有资源

allow access to all resources on kubernetes cluster except get nodes

团队,我在 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, but "nodes" with appropriate 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 角色。 值得创建一个新角色并为其分配用户。