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".