成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

實(shí)踐中理解Kubernetes RBAC之Role

運(yùn)維 系統(tǒng)運(yùn)維
本篇帶給大家如何創(chuàng)建一個(gè)用戶(hù)、授權(quán)操作k8s集群的過(guò)程。希望對(duì)你有所幫助!

[[403408]]

背景

172.16.99.128是的我k8s集群的master節(jié)點(diǎn),此處是從這里獲取集群的證書(shū)。

創(chuàng)建訪(fǎng)問(wèn)architechure命名空間的用戶(hù)

1.給用戶(hù)devops 創(chuàng)建一個(gè)私鑰

  1. openssl genrsa -out devops.key 2048 

2.使用我們剛剛創(chuàng)建的私鑰創(chuàng)建一個(gè)證書(shū)簽名請(qǐng)求文件:devops.csr,要注意需要確保在-subj參數(shù)中指定用戶(hù)名和組(CN表示用戶(hù)名,O表示組)

  1. openssl req -new -key devops.key -out devops.csr -subj "/CN=devops/O=architechure" 

3.然后找到我們的Kubernetes集群的CA,我們使用的是kubeadm安裝的集群,CA相關(guān)證書(shū)位于/etc/kubernetes/pki/目錄下面,如果你是二進(jìn)制方式搭建的,你應(yīng)該在最開(kāi)始搭建集群的時(shí)候就已經(jīng)指定好了CA的目錄,我們會(huì)利用該目錄下面的ca.crt和ca.key兩個(gè)文件來(lái)批準(zhǔn)上面的證書(shū)請(qǐng)求,生成最終的證書(shū)文件,我們這里設(shè)置證書(shū)的有效期為500天

  1. scp root@172.16.99.128:/etc/kubernetes/pki/ca.crt . 
  2. scp root@172.16.99.128:/etc/kubernetes/pki/ca.key . 
  3. openssl x509 -req -in devops.csr -CA ./ca.crt -CAkey ./ca.key -CAcreateserial -out devops.crt -days 500 
  4. ➜  ls -al 
  5. total 72 
  6. drwxr-xr-x  11 marion  staff   352 Dec 25 11:32 . 
  7. drwxr-xr-x  13 marion  staff   416 Dec 25 11:26 .. 
  8. -rw-r--r--   1 marion  staff    17 Dec 25 11:32 .srl 
  9. -rw-r--r--   1 marion  staff  1156 Dec 25 11:32 README.md 
  10. -rw-r--r--   1 marion  staff  1025 Dec 25 11:30 ca.crt 
  11. -rw-------   1 marion  staff  1675 Dec 25 11:30 ca.key 
  12. -rw-r--r--   1 marion  staff  1009 Dec 25 11:32 devops.crt 
  13. -rw-r--r--   1 marion  staff   924 Dec 25 11:30 devops.csr 
  14. -rw-r--r--   1 marion  staff  1679 Dec 25 11:27 devops.key 

4.現(xiàn)在我們可以使用剛剛創(chuàng)建的證書(shū)文件和私鑰文件在集群中創(chuàng)建新的憑證:

  1. kubectl config set-credentials devops --client-certificate=devops.crt  --client-key=devops.key 

5.通過(guò)剛才創(chuàng)建的用戶(hù)憑證創(chuàng)建新的上下文(Context)

  1. #如果你的電腦上正在管理多個(gè)集群的,可能你的集群名字會(huì)被改變,因此在下面的--cluster參數(shù)處指明實(shí)際的集群名稱(chēng),如下圖 
  2. kubectl config set-context devops-context --cluster=cluster-tf26gt9mmk --namespace=architechure --user=devops 

6.嘗試通過(guò)該用戶(hù)操作命令

  1. ➜  kubectl get pods --context=devops-context 
  2. Error from server (Forbidden): pods is forbidden: User "devops" cannot list resource "pods" in API group "" in the namespace "architechure" # 因?yàn)樵揹evops-context還沒(méi)有操作API的權(quán)限 

7.給用戶(hù)創(chuàng)建一個(gè)role的角色devops.role.yaml

  1. apiVersion: rbac.authorization.k8s.io/v1 
  2. kind: Role 
  3. metadata: 
  4.   name: devops-role 
  5.   namespace: architechure 
  6. rules: 
  7. - apiGroups: ["""extensions""apps"
  8.   resources: ["deployments""replicasets""pods"
  9.   verbs: ["get""list""watch""create""update""patch""delete"] # 也可以使用['*'

然后在集群中創(chuàng)建該角色

  1. kubectl apply -f ./devops.role.yaml 

8.創(chuàng)建權(quán)限與角色之間的綁定關(guān)系devops-rolebinding.yaml

  1. apiVersion: rbac.authorization.k8s.io/v1 
  2. kind: RoleBinding 
  3. metadata: 
  4.   name: devops-rolebinding 
  5.   namespace: architechure 
  6. subjects: 
  7. - kind: User 
  8.   name: devops 
  9.   apiGroup: "" 
  10. roleRef: 
  11.   kind: Role 
  12.   name: devops-role # 上一步創(chuàng)建的devops-role實(shí)體 
  13.   apiGroup: "" 

在集群中創(chuàng)建角色與用戶(hù)之間的綁定關(guān)系

  1. k apply -f ./devops-rolebinding.yaml 

9.此時(shí)我們可以通過(guò)kubecm切換到該角色上

此時(shí),從下圖就可以查看到當(dāng)前集群的有一個(gè)新的用戶(hù)角色devops,上面用到的Kubecm我們之前也分享過(guò),如果需要可以點(diǎn)此跳轉(zhuǎn)

10.權(quán)限驗(yàn)證

  1. > kubectl get pods 
  2. No resources found in architechure namespace. 
  3. > kubectl get replicasets 
  4. No resources found in architechure namespace. 
  5. > kubectl get deploy 
  6. No resources found in architechure namespace. 
  7. > kubectl get svc 
  8. Error from server (Forbidden): services is forbidden: User "devops" cannot list resource "services" in API group "" in the namespace "architechure" 

總結(jié)一下就是:

  • 根據(jù)集群的CA證書(shū)創(chuàng)建出來(lái)用戶(hù)證書(shū)
  • 根據(jù)用戶(hù)證書(shū)創(chuàng)建該用戶(hù)在集群內(nèi)的憑證和上下文內(nèi)容
  • 要想用戶(hù)能進(jìn)行基本的操作,需要對(duì)用戶(hù)針對(duì)apiGroup授權(quán)

為devops用戶(hù)增加指定命名空間的權(quán)限

1.我們先把當(dāng)前上下文切換到之前有權(quán)限操作的user-tf26gt9mmk用戶(hù)上

  1. kubecm switch 
  2. select dev 

否則以下步驟會(huì)出錯(cuò):

2.首先需要?jiǎng)?chuàng)建針對(duì)指定命名空間的上下文

  1. kubectl config set-context devops-context --cluster=cluster-tf26gt9mmk --namespace=default --user=devops 

此時(shí)查詢(xún)列舉default空間下的pods是不行的,因?yàn)檫€沒(méi)允許操作

  1. kubectl get pods --context=devops-context 
  2. Error from server (Forbidden): pods is forbidden: User "devops" cannot list resource "pods" in API group "" in the namespace "default" 

3.創(chuàng)建default空間下的role與rolebinding

devops-role-default.yaml

  1. apiVersion: rbac.authorization.k8s.io/v1 
  2. kind: Role 
  3. metadata: 
  4.   name: devops-role 
  5.   namespace: default 
  6. rules: 
  7. - apiGroups: ["""extensions""apps"
  8.   resources: ["deployments""replicasets""pods"
  9.   verbs: ["get""list""watch""create""update""patch""delete"] # 也可以使用['*'

devops-rolebinding-default.yaml

  1. apiVersion: rbac.authorization.k8s.io/v1 
  2. kind: RoleBinding 
  3. metadata: 
  4.   name: devops-rolebinding 
  5.   namespace: default 
  6. subjects: 
  7. - kind: User 
  8.   name: devops 
  9.   apiGroup: "" 
  10. roleRef: 
  11.   kind: Role 
  12.   name: devops-role 
  13.   apiGroup: "" 

然后我們?cè)诩褐袆?chuàng)建這兩個(gè)對(duì)象

  1. kubectl apply -f devops-role-default.yaml 
  2. kubectl apply -f devops-rolebinding-default.yaml 

4.查看role資源對(duì)象是否創(chuàng)建

  1. kubectl get role -A |grep devops-role # 分別在architechure和default命名空間下 
  2. architechure                   devops-role                                      2021-05-17T07:57:27Z 
  3. default                        devops-role                                      2021-05-28T03:19:24Z 

5.切換當(dāng)前上下文環(huán)境,驗(yàn)證是否可以操作資源

  1. kubecm switch 
  2. select devops-context 
  3. kubectl get pods -n default 
  4. kubectl get pods -n architechure 

到這里就基本上說(shuō)清楚如何創(chuàng)建一個(gè)用戶(hù)、授權(quán)操作k8s集群的過(guò)程了。

 

責(zé)任編輯:姜華 來(lái)源: 云原生生態(tài)圈
相關(guān)推薦

2024-09-03 16:28:20

2012-08-30 16:24:04

HTML5歐朋W3C

2013-04-19 10:40:03

2010-03-09 17:32:45

Python數(shù)組

2021-06-04 10:52:51

kubernetes場(chǎng)景容器

2021-03-11 14:33:28

Kubernetes開(kāi)源容器

2023-01-14 22:59:34

2010-03-17 16:06:08

Java線(xiàn)程同步

2010-11-11 14:28:01

SQL Server排

2023-12-06 15:21:16

Java云原生

2021-07-19 19:44:57

技術(shù)模型實(shí)踐

2025-03-07 10:23:46

2022-03-15 08:36:34

NginxKubernetesIngress

2023-08-24 09:44:16

數(shù)據(jù)庫(kù)性能

2011-06-16 16:39:14

CSS

2022-09-19 08:35:28

Kafka節(jié)點(diǎn)故障

2021-03-12 07:47:44

KubernetesRedis-clustRedis

2012-02-23 10:13:08

數(shù)據(jù)中心虛擬機(jī)管理負(fù)載均衡

2012-02-24 09:49:21

虛擬化數(shù)據(jù)中心Citrix

2012-05-18 09:29:18

服務(wù)器存儲(chǔ)虛擬化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 91精品国产综合久久婷婷香蕉 | 国产美女精品视频 | www.一级毛片 | 亚洲综合无码一区二区 | 五月免费视频 | 国产精品久久久久久一级毛片 | 久久久久亚洲 | 韩日精品一区 | 国产一区二区三区久久 | 亚洲一区二区三区四区五区中文 | 香蕉av免费| 日韩亚洲视频在线 | 日韩欧美中文在线 | 99热精品国产 | 国产一区二区三区欧美 | 国产精品视频网 | 很很干很很日 | 免费观看的黄色网址 | 日韩精品激情 | 成人午夜看片 | 国产免费又黄又爽又刺激蜜月al | 婷婷激情综合 | 日韩理论电影在线观看 | 亚洲成人精品免费 | 午夜精品久久久久久久久久久久久 | 在线视频一区二区三区 | 亚洲狠狠 | 精品欧美一区二区三区 | 日韩成人免费av | 国产精品美女久久久久aⅴ国产馆 | 婷婷激情综合 | 国产成人精品高清久久 | 九九久久精品 | 日日操日日干 | 日韩成人中文字幕 | 国产精品欧美一区二区三区 | 五月天婷婷久久 | 国产精品高清在线 | 在线亚洲一区二区 | 免费看片国产 | 国产精品综合 |