K8S基本操作-40-K8S Cluster Role 主機叢集角色
Cluster Role
由於有些資源是綁定某一台主機的,例如: Volume 這種存在硬碟上的資源。
並且這些資源橫跨多個 Namespace 與多個 Node , 如開發環境跟生產環境都需要 Volume 。
而有時候需要對 Node 新增修改刪除查詢,此時就可以設置 Cluster Role 有著更高的權限,對於 Node 進行調節。
基於 Cluster Scoped 的資源
- Node
- PersistentVolume
- PersistentVolumeClaim (請求指定大小的 Persistent Volume)
- ServiceAccount
- ClusterRole
- ClusterRoleBinding
使用範例1
設置一個可以存取全 Node 中的 Pod 的角色。
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: my-cluster-role
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- list
- watch
使用範例2
設置可以增刪修查 Node 的角色
cluster-admin-role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: cluster-administrator
rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["list", "get", "create", "delete"]
cluster-admin-role-binding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: cluster-admin-role-binding
subjects:
- kind: User
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: ClusterRole
name: cluster-administrator
apiGroup: rbac.authorization.k8s.io