k8s增加普通用戶User
普通用戶並不是通過k8s來創建和維護,是通過創建證書和切換上下文環境的方式來創建和切換用戶。
其實創建用戶的步驟,就是手動部署k8s集群里的一個步驟。
創建過程見下:
1、創建用戶證書
[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" } ] }
2、在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證書
3、生成證書證書如下
[root@k8s-master1]# ls
userkubectl.csr
userkubectl
-csr.json
userkubectl
-key.pem
userkubectl
.pem
3、在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節點進行設置
4、在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.
5、在master節點
設置上下文參數
[root@k8s-master1]# kubectl config set-context kubernetes --cluster=kubernetes --user=userkubectl --kubeconfig=kubectl.kubeconfig
Context "kubernetes" created.
6、授予userkubectl cluster-admin權限 可根據不同授權給予創建role 或者cluserrole權限給用戶
[root@k8s-master1]#
kubectl create clusterrolebinding kubectl-bootstrap --clusterrole=cluster-admin --user=userkubectl
7、將生成的
kubectl.kubeconfig文件復制至各節點的/root/.kube/下,並修改名字為config
注釋:需要在各node節點上面查看是否設置了 $KUBECONFIG環境變量,如果設置了需要把kubectl.kubeconfig設置成環境變量下的文件