文章目录
- 一、创建zhangsan集群用户赋予uat名称空间管理员权限
- 二、创建lisi集群用户赋予查看所有名称Pod权限
需求:公司新入职两位运维同事,分别是zhangsan、lisi,刚入职肯定不能给K8S管理员权限,所以需要创建两个系统账号,分别对应不同的权限:
zhangsan用户
:对uat名称空间拥有管理员权限lisi用户
:对所有命名空间拥有查看Pod的权限
一、创建zhangsan集群用户赋予uat名称空间管理员权限
第一步:生成一个私钥
cd /etc/kubernetes/pki/
(umask 077; openssl genrsa -out zhangsan.key 2048)
第二步:生成一个证书请求
openssl req -new -key zhangsan.key -out zhangsan.csr -subj "/CN=zhangsan"
第三步:生产一个证书
openssl x509 -req -in zhangsan.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out zhangsan.crt -days 3650
第四步:将zhangsan
用户加入集群用户中,用来认证apiserver的连接
kubectl config set-credentials zhangsan --client-certificate=./zhangsan.crt --client-key=./zhangsan.key --embed-certs=true
验证:
kubectl config view
第五步:添加zhagnsan
用户上下文
kubectl config set-context zhangsan@kubernetes --cluster=kubernetes --user=zhangsan
验证:
kubectl config view
第六步:切换到zhangsan
用户,默认没有任何权限
kubectl config use-context zhangsan@kubernetes
可以切换后,先切换回来管理用户
kubectl config use-context kubernetes-admin@kubernetes
第七步:创建uat
名称空间 绑定zhangsan
用户在uat名称空间拥有管理员权限
kubectl create namespace uat
kubectl create rolebinding zhangsan -n uat --clusterrole=cluster-admin --user=zhangsan
第八步:切换zhangsan
用户,测试是否有权限
kubectl config use-context zhangsan@kubernetes
kubectl get pods -n uat
第九步:在Linux中添加一个zhagnsan
系统用户,并赋予密码
useradd zhangsan
passwd zhangsan
第十步:将/root/.kube/
目录复制到zhangsan
用户家目录,并赋权
cp -rp /root/.kube /home/zhangsan
chown -R zhangsan:zhangsan /home/zhangsan
第十一步:切换zhangsan
用户修改/home/zhangsan/.kube/config
只保留张三用户信息
su - zhangsan
vim .kube/config
测试使用zhangsan
用户访问集群
kubectl get pods -n uat
OK,测试没问题后就可以吧Linux的zhangsan
系统用户提交给新来的运维同事等,让新来的同事只有在uat
命名空间操作的权限。
二、创建lisi集群用户赋予查看所有名称Pod权限
第一步:生成一个私钥
cd /etc/kubernetes/pki/
(umask 077; openssl genrsa -out lisi.key 2048)
第二步:生成一个证书请求
openssl req -new -key lisi.key -out lisi.csr -subj "/CN=lisi"
第三步:生产一个证书
openssl x509 -req -in lisi.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out lisi.crt -days 3650
第四步:将lisi
用户加入集群用户中,用来认证apiserver的连接
kubectl config set-credentials lisi --client-certificate=./lisi.crt --client-key=./lisi.key --embed-certs=true
验证:
kubectl config view
第五步:添加lisi
用户上下文
kubectl config set-context lisi@kubernetes --cluster=kubernetes --user=lisi
验证:
kubectl config view
第六步:切换到lisi
用户,默认没有任何权限
kubectl config use-context lisi@kubernetes
可以切换后,先切换回来管理用户
kubectl config use-context kubernetes-admin@kubernetes
第七步:创建clusterrole
赋予查看Pod
的权限,因为是查看所有命名空间Pod,所以这里使用clusterrole
cat clusterrole.yaml
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:name: clusterrole-lisi
rules:
- apiGroups: [""]resources: ["pods"]verbs: ["get", "watch" ,"list"]
kubectl apply -f clusterrole.yaml
第八步:创建clusterrolebinding
绑定lisi用户
kubectl create clusterrolebinding lisi --clusterrole=clusterrole-lisi --user=lisi
第九步:切换lisi用户测试权限
kubectl config use-context lisi@kubernetes
kubectl get pods
第十步:在Linux中添加一个lisi
系统用户,并赋予密码
useradd lisi
passwd lisi
第十步:将/root/.kube/
目录复制到lisi
用户家目录,并赋权
cp -rp /root/.kube /home/lisi
chown -R lisi:lisi /home/lisi
第十一步:切换zhangsan
用户修改/home/lisi/.kube/config
只保留张三用户信息
su - lisi
vim .kube/config
测试使用lisi
用户访问集群
kubectl get pods
OK,至此结束!