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

實踐中理解Kubernetes RBAC之Role

運維 系統運維
本篇帶給大家如何創建一個用戶、授權操作k8s集群的過程。希望對你有所幫助!

[[403408]]

背景

172.16.99.128是的我k8s集群的master節點,此處是從這里獲取集群的證書。

創建訪問architechure命名空間的用戶

1.給用戶devops 創建一個私鑰

  1. openssl genrsa -out devops.key 2048 

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

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

3.然后找到我們的Kubernetes集群的CA,我們使用的是kubeadm安裝的集群,CA相關證書位于/etc/kubernetes/pki/目錄下面,如果你是二進制方式搭建的,你應該在最開始搭建集群的時候就已經指定好了CA的目錄,我們會利用該目錄下面的ca.crt和ca.key兩個文件來批準上面的證書請求,生成最終的證書文件,我們這里設置證書的有效期為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.現在我們可以使用剛剛創建的證書文件和私鑰文件在集群中創建新的憑證:

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

5.通過剛才創建的用戶憑證創建新的上下文(Context)

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

6.嘗試通過該用戶操作命令

  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" # 因為該devops-context還沒有操作API的權限 

7.給用戶創建一個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"] # 也可以使用['*'

然后在集群中創建該角色

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

8.創建權限與角色之間的綁定關系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 # 上一步創建的devops-role實體 
  13.   apiGroup: "" 

在集群中創建角色與用戶之間的綁定關系

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

9.此時我們可以通過kubecm切換到該角色上

此時,從下圖就可以查看到當前集群的有一個新的用戶角色devops,上面用到的Kubecm我們之前也分享過,如果需要可以點此跳轉

10.權限驗證

  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" 

總結一下就是:

  • 根據集群的CA證書創建出來用戶證書
  • 根據用戶證書創建該用戶在集群內的憑證和上下文內容
  • 要想用戶能進行基本的操作,需要對用戶針對apiGroup授權

為devops用戶增加指定命名空間的權限

1.我們先把當前上下文切換到之前有權限操作的user-tf26gt9mmk用戶上

  1. kubecm switch 
  2. select dev 

否則以下步驟會出錯:

2.首先需要創建針對指定命名空間的上下文

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

此時查詢列舉default空間下的pods是不行的,因為還沒允許操作

  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.創建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: "" 

然后我們在集群中創建這兩個對象

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

4.查看role資源對象是否創建

  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.切換當前上下文環境,驗證是否可以操作資源

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

到這里就基本上說清楚如何創建一個用戶、授權操作k8s集群的過程了。

 

責任編輯:姜華 來源: 云原生生態圈
相關推薦

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數組

2021-06-04 10:52:51

kubernetes場景容器

2021-03-11 14:33:28

Kubernetes開源容器

2023-01-14 22:59:34

2010-03-17 16:06:08

Java線程同步

2010-11-11 14:28:01

SQL Server排

2023-12-06 15:21:16

Java云原生

2021-07-19 19:44:57

技術模型實踐

2025-03-07 10:23:46

2022-03-15 08:36:34

NginxKubernetesIngress

2023-08-24 09:44:16

數據庫性能

2011-06-16 16:39:14

CSS

2022-09-19 08:35:28

Kafka節點故障

2021-03-12 07:47:44

KubernetesRedis-clustRedis

2022-11-26 00:02:00

優化器SQL語句

2020-08-20 10:10:43

Prometheus架構監控

2012-02-23 10:13:08

數據中心虛擬機管理負載均衡
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人精品一区二区三区 | 久久久久久久久国产成人免费 | 欧美黑人巨大videos精品 | 香蕉视频在线播放 | 亚洲成人国产精品 | 久久99精品久久久久久国产越南 | 91精品国产综合久久婷婷香蕉 | 成人日韩精品 | 亚洲精品二区 | 国产欧美综合在线 | 999精品在线| 日韩视频一区二区三区 | av资源中文在线 | 亚洲一区二区免费视频 | 精品国产一区二区三区久久 | 精品一区二区在线观看 | 一区二区成人 | 日韩视频二区 | 亚洲精品国产成人 | 先锋资源网 | 99pao成人国产永久免费视频 | 久久亚洲综合 | 中文字幕1区 | 二区在线观看 | 日韩一区二区在线播放 | 精品欧美乱码久久久久久 | 九色视频网站 | 日本精品久久久一区二区三区 | 国产精品久久久久久久久久免费看 | av中文字幕在线 | 日韩av电影院 | 一本一道久久a久久精品综合蜜臀 | 欧美片网站免费 | 久久综合久色欧美综合狠狠 | 免费h在线 | 不卡视频一区 | 在线视频一区二区三区 | 一级做a爰片性色毛片视频停止 | 亚洲综合视频 | 久久1区 | 丝袜 亚洲 欧美 日韩 综合 |