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-陈述式资源管理

第二篇:二进制部署K8s集群进阶使用

使用kubeadm部署k8s集群05-配置kubectl访问kube-apiserver

k8s debug

k8s—kubectl命令简单使用

k8s—kubectl命令简单使用