1、Role:角色,也就是权限,它其实是一组规则,定义了一组对Kubernetes API对象的操作权限
2、Subject:被作用者,图中用户,既可以是“人”,也可以是“机器”,也可以是Kubernetes里定义的“用户”
3、RoleBinding:定义了“被作用者”和“角色”的绑定关系
Role和RoleBinding对象都是Namespaced对象,它们对权限限制规则仅在它们自己的Namespace内有效,roleRef也只能引用当前Namespace里的Role对象
ClusterRole和ClusterRoleBinding针对整个集群,不限于单个namespace
范例:
1.新建K8S内建用户sa
apiVersion: v1 kind: ServiceAccount metadata: namespace: mynamespace name: iyunw-sa
2.新建权限Role
kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: namespace: mynamespace ## 指定它能产生作用的Namespace name: iyunw-role rules: ## 定义权限规则 - apiGroups: [""] resources: ["pods"] ## 对mynamespace下面的Pod对象 verbs: ["get", "watch", "list"] ## 进行GET、WATCH、LIST操作3.建立角色绑定
kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: iyunw-rolebinding namespace: mynamespace subjects: - kind: ServiceAccount name: iyunw namespace: mynamespace roleRef: kind: Role name: iyunw-role apiGroup: rbac.authorization.k8s.io
到此iyunw sa用户就对namespace mynamespace下pod有get watch list权限
评论区