k8s 使用新增user配置kubectl在各个节点都可运行
Posted xiao_pai_pai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s 使用新增user配置kubectl在各个节点都可运行相关的知识,希望对你有一定的参考价值。
k8s增加普通用户User
普通用户并不是通过k8s来创建和维护,是通过创建证书和切换上下文环境的方式来创建和切换用户。
其实创建用户的步骤,就是手动部署k8s集群里的一个步骤。
创建过程见下:
1、创建用户证书
[[email protected]]# 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证书
[[email protected]]# 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、生成证书证书如下
[[email protected]]# ls
userkubelet.csr userkubelet-csr.json
userkubelet
-key.pem
userkubelet
.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节点上执行设置客户端认证参数
[[email protected]]# 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节点
设置上下文参数
[[email protected]]# kubectl config set-context kubernetes --cluster=kubernetes --user=userkubectl --kubeconfig=kubectl.kubeconfig
Context "kubernetes" created.
6、授予userkubectl cluster-admin权限 可根据不同授权给予创建role 或者cluserrole权限给用户
[[email protected]]#
kubectl create clusterrolebinding kubectl-bootstrap --clusterrole=cluster-admin --user=userkubelet
7、将生成的
kubectl.kubeconfig文件复制至各节点的/root/.kube/下,并修改名字为config
注释:需要在各node节点上面查看是否设置了 $KUBECONFIG环境变量,如果设置了需要把kubectl.kubeconfig设置成环境变量下的文件
以上是关于k8s 使用新增user配置kubectl在各个节点都可运行的主要内容,如果未能解决你的问题,请参考以下文章
二进制部署K8s集群进阶使用之第2节kubectl-陈述式资源管理