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设置成环境变量下的文件