需求:公司新入職兩位運維同事,分別是zhangsan、lisi,剛?cè)肼毧隙ú荒芙oK8S管理員權(quán)限,所以需要創(chuàng)建兩個系統(tǒng)賬號,分別對應(yīng)不同的權(quán)限:
-
zhangsan用戶
:對uat名稱空間擁有管理員權(quán)限 -
lisi用戶
:對所有命名空間擁有查看Pod的權(quán)限
一、創(chuàng)建zhangsan集群用戶賦予uat名稱空間管理員權(quán)限
第一步:生成一個私鑰
cd /etc/kubernetes/pki/
(umask 077; openssl genrsa -out zhangsan.key 2048)
第二步:生成一個證書請求
openssl req -new -key zhangsan.key -out zhangsan.csr -subj "/CN=zhangsan"
第三步:生產(chǎn)一個證書
openssl x509 -req -in zhangsan.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out zhangsan.crt -days 3650
第四步:將zhangsan
用戶加入集群用戶中,用來認(rèn)證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
用戶,默認(rèn)沒有任何權(quán)限
kubectl config use-context zhangsan@kubernetes
可以切換后,先切換回來管理用戶
kubectl config use-context kubernetes-admin@kubernetes
第七步:創(chuàng)建uat
名稱空間 綁定zhangsan
用戶在uat名稱空間擁有管理員權(quán)限
kubectl create namespace uat
kubectl create rolebinding zhangsan -n uat --clusterrole=cluster-admin --user=zhangsan
第八步:切換zhangsan
用戶,測試是否有權(quán)限
kubectl config use-context zhangsan@kubernetes
kubectl get pods -n uat
第九步:在Linux中添加一個zhagnsan
系統(tǒng)用戶,并賦予密碼
useradd zhangsan
passwd zhangsan
第十步:將/root/.kube/
目錄復(fù)制到zhangsan
用戶家目錄,并賦權(quán)
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
系統(tǒng)用戶提交給新來的運維同事等,讓新來的同事只有在uat
命名空間操作的權(quán)限。
二、創(chuàng)建lisi集群用戶賦予查看所有名稱Pod權(quán)限
第一步:生成一個私鑰
cd /etc/kubernetes/pki/
(umask 077; openssl genrsa -out lisi.key 2048)
第二步:生成一個證書請求
openssl req -new -key lisi.key -out lisi.csr -subj "/CN=lisi"
第三步:生產(chǎn)一個證書
openssl x509 -req -in lisi.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out lisi.crt -days 3650
第四步:將lisi
用戶加入集群用戶中,用來認(rèn)證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
用戶,默認(rèn)沒有任何權(quán)限
kubectl config use-context lisi@kubernetes
可以切換后,先切換回來管理用戶
kubectl config use-context kubernetes-admin@kubernetes
第七步:創(chuàng)建clusterrole
賦予查看Pod
的權(quán)限,因為是查看所有命名空間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
第八步:創(chuàng)建clusterrolebinding
綁定lisi用戶
kubectl create clusterrolebinding lisi --clusterrole=clusterrole-lisi --user=lisi
第九步:切換lisi用戶測試權(quán)限
kubectl config use-context lisi@kubernetes
kubectl get pods
第十步:在Linux中添加一個lisi
系統(tǒng)用戶,并賦予密碼
useradd lisi
passwd lisi
第十步:將/root/.kube/
目錄復(fù)制到lisi
用戶家目錄,并賦權(quán)
cp -rp /root/.kube /home/lisi
chown -R lisi:lisi /home/lisi
第十一步:切換zhangsan
用戶修改/home/lisi/.kube/config
只保留張三用戶信息
su - lisi
vim .kube/config
測試使用lisi
用戶訪問集群文章來源:http://www.zghlxwxcb.cn/news/detail-569621.html
kubectl get pods
OK,至此結(jié)束!文章來源地址http://www.zghlxwxcb.cn/news/detail-569621.html
到了這里,關(guān)于【Kubernetes運維篇】RBAC之創(chuàng)建集群用戶管理K8S的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!