今天继续给大家介绍Linux运维相关知识,本文主要内容是Kubernetes ClusterRole创建和ClusterRolebinding。
一、Kubernetes ClusterRole创建
首先,我们来创建一个ClusterRole,与Role的创建方式类似,我们也可以采用两种方式来创建ClusterRole。通过命令行的方式来创建ClusterRole的命令格式如下:
kubectl create clusterrole 【ClusterRole名】 --verb=【ClusterRole权限】 --resource=【Cluster操作对象】
例如,执行命令:
kubectl create clusterrole cluster-reader --verb=get,list,watch --resource=pods
即可创建名为cluster-reader的clusterrole,该clusterrole具有对Pod资源的读权限。
此外,我们还可以通过资源清单的方式来进行创建,与上述命令相同的资源清单如下:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: cluster-reader
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- list
- watch
在上述清单中,我们用resources参数指定了该ClusterRole的操作对象,用verbs参数指定了该ClasterRole所具有的权限。
完成后的资源清单如下所示:
在完成资源清单的配置后,我们接下来就可以根据该清单来创建ClusterRole,执行命令:
kubectl apply -f clusterrole.yaml
该命令执行结果如下:
创建完成后,我们来查看一下该ClusterRole的详细信息,结果如下:
二、Kubernetes ClusterRolebinding
在Kubernetes详解(五十一)——Kubernetes用户创建一文中,我们为Kubernetes集群创建了一个pzz的用户。接下来,我们创建一个ClusterRolebinding,将该用户绑定我们刚刚创建的ClusterRole。
ClusterRolebinding的创建也有两种方式,一种是通过命令的方式创建,另一种是通过资源清单的方式创建。
Kubernetes集群创建ClusterRolebinding的命令格式如下:
kubectl create clusterrolebinding bind-pod-reader --clusterrole 【ClusterRole名】 --user 【Kubernetes用户名】
例如,我们执行命令:
kubectl create clusterrolebinding bind-pod-reader --clusterrole cluster-reader --user pzz
即可创建一个名为bind-pod-reader的ClusterRolebinding,将cluster-reader的ClusterRole与pzz用户绑定在一起。
除此之外,我们还可以使用资源清单的方式创建该ClusterRolebinding,与上述命令作用相同的资源清单如下:
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: bind-pod-reader
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-reader
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: User
name: pzz
在上述配置中,我们使用roleRef指定了ClusterRole的名称,使用subjects指定了User用户的名称。配置完成后的资源清单如下所示:
在完成上述配置后,我们执行命令:
kubectl apply -f clusterrolebinding.yaml
创建该资源清单配置的ClusterRolebinding,该命令的执行结果如下所示:
在ClusterRolebinding创建结束后,我们可以查看该ClusterRolebinding,结果如下所示:
三、效果展示
我们将Kubernetes的登录用户切换到pzz,之后我们来测试对default和kube-system名称空间Pod的查看,结果如下所示:
从上图中可以看出,我们的pzz用户拥有了对整个Kubernetes集群的权限,我们的Kubernetes ClusterRole创建和ClusterRolebinding配置成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200