k8s权限控制
参考博客
- Role:角色,它其实是一组规则,定义了一组对 Kubernetes API 对象的操作权限。
- Subject:被作用者,既可以是“人”,也可以是“机器”,也可以是你在 Kubernetes 里定义的“用户”。
- RoleBinding:定义了“被作用者”和“角色”的绑定关系。
clusterrole:(集群角色)
clusterrolebinding:(绑定到集群)
、如果使用rolebinding绑定到clusterrole上,表示绑定的用户只能用于当前namespace的权限
1
2
3
4
5
6
7
8
9
10
|
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: mynamespace
name: example-role
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
|
设置上下文和账户切换
设置工作上下文(前提得有用户)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
[root@kub-k8s-master ~]# kubectl config set-context soso@kubernetes --cluster=kubernetes --user=soso
Context "soso@kubernetes" created.
[root@kub-k8s-master ~]# kubectl config view
apiVersion: v1
clusters:
- cluster:
[root@kub-k8s-master ~]# kubectl config use-context soso@kubernetes
Switched to context "soso@kubernetes".
# 切换为管理员用户
[root@kub-k8s-master prome]# kubectl config use-context kubernetes-admin@kubernetes
Switched to context "kubernetes-admin@kubernetes".
|