【Kubernetes运维篇】RBAC之创建集群用户管理K8S

奋斗吧
奋斗吧
擅长邻域:未填写

标签: 【Kubernetes运维篇】RBAC之创建集群用户管理K8S 代码人生博客 51CTO博客

2023-07-22 18:24:13 67浏览

【Kubernetes运维篇】RBAC之创建集群用户管理K8S,户,默认没有任何权限。用户,测试是否有权限。



文章目录

  • 一、创建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

【Kubernetes运维篇】RBAC之创建集群用户管理K8S_kubernetes

第五步:添加zhagnsan用户上下文

kubectl config set-context zhangsan@kubernetes --cluster=kubernetes --user=zhangsan

验证:

kubectl config view

【Kubernetes运维篇】RBAC之创建集群用户管理K8S_kubernetes_02

第六步:切换到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

【Kubernetes运维篇】RBAC之创建集群用户管理K8S_kubernetes_03

测试使用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

【Kubernetes运维篇】RBAC之创建集群用户管理K8S_K8S集群用户_04

第五步:添加lisi用户上下文

kubectl config set-context lisi@kubernetes --cluster=kubernetes --user=lisi

验证:

kubectl config view

【Kubernetes运维篇】RBAC之创建集群用户管理K8S_容器_05

第六步:切换到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

【Kubernetes运维篇】RBAC之创建集群用户管理K8S_RBAC授权_06

测试使用lisi用户访问集群

kubectl get pods

OK,至此结束!


好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695