k8s 使用新增user配置kubectl在各個節點均可運行

k8s增長普通用戶Usernode

普通用戶並非經過k8s來建立和維護,是經過建立證書和切換上下文環境的方式來建立和切換用戶。
其實建立用戶的步驟,就是手動部署k8s集羣裏的一個步驟。
建立過程見下:json

一、建立用戶證書bootstrap

[root@k8s-master1]# cat userkubectl-csr.json {   "CN": "userkubectl", #####userkubectl用戶名字,可自行定義,與後面的名字要保持一致   "key": {     "algo": "rsa",     "size": 2048   },   "names": [     {       "C": "CN",       "ST": "SZ",       "L": "SZ",       "O": "k8s",       "OU": "4Paradigm"     }   ] }
二、在master節點上執行 生成user證書
[root@k8s-master1]#  cfssl gencert -ca=/etc/kubernetes/cert/ca.pem -ca-key=/etc/kubernetes/cert/ca-key.pem -config=/etc/kubernetes/cert/ca-config.json -profile=kubernetes userkubectl-csr.json | cfssljson -bare userkubectl
-ca=/etc/kubernetes/cert/ca.pem 爲k8s apiserver證書
-ca-key=/etc/kubernetes/cert/ca-key.pem爲k8s apiserver證書
-config=/etc/kubernetes/cert/ca-config.json爲k8s apiserver證書

三、生成證書證書以下
[root@k8s-master1]# ls
userkubectl.csr 
userkubectl-csr.json userkubectl-key.pem userkubectl.pem
三、在master節點上執行設置集羣參數
kubectl config set-cluster kubernetes --certificate-authority=/etc/kubernetes/cert/ca.pem --embed-certs=true --server=https://xxx.xxx.xxx.xxx:4443 --kubeconfig=kubectl.kubeconfig
 註釋: --server=https://xxx.xxx.xxx.xxx:4443 根據本身master節點進行設置
四、在master節點上執行設置客戶端認證參數
[root@k8s-master1]# kubectl config set-credentials userkubectl --client-certificate=userkubectl.pem --client-key=userkubectl-key.pem --embed-certs=true --kubeconfig=kubectl.kubeconfig User "userkubectl" set.
五、在master節點
設置上下文參數

[root@k8s-master1]# kubectl config set-context kubernetes --cluster=kubernetes --user=userkubectl --kubeconfig=kubectl.kubeconfig
Context "kubernetes" created.
六、授予userkubectl cluster-admin權限  可根據不一樣受權給予建立role 或者cluserrole權限給用戶
kubectl create clusterrolebinding kubectl-bootstrap --clusterrole=cluster-admin --user=userkubectl
[root@k8s-master1]#
七、將生成的kubectl.kubeconfig文件複製至各節點的/root/.kube/下,並修更名字爲config

註釋:須要在各node節點上面查看是否設置了 $KUBECONFIG環境變量,若是設置了須要把kubectl.kubeconfig設置成環境變量下的文件
相關文章
相關標籤/搜索