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设置成环境变量下的文件
相关文章
相关标签/搜索