我们通过如下命令可以看到当前Kubernetes集群的管理用户是什么:
[root@master ssl]# kubectl config viewapiVersion: v1clusters:- cluster:certificate-authority-data: DATA+OMITTEDserver: https://172.16.1.128:6443name: cluster1contexts:- context:cluster: cluster1user: adminname: context-cluster1-admin- context:cluster: kubernetesnamespace: kube-systemuser: jokername: joker-contextcurrent-context: context-cluster1-adminkind: Configpreferences: {}users:- name: adminuser:client-certificate-data: REDACTEDclient-key-data: REDACTED- name: jokeruser:client-certificate: /root/k8s/rbac/joker.crtclient-key: /root/k8s/rbac/joker.key
下面我们自定义证书文件,然后自定义用户来作为集群的管理用户:
1、我们用的ca证书还是集群的原有证书,我的证书位置在如下位置:
[root@master ssl]# pwd/etc/kubernetes/sslYou have new mail in /var/spool/mail/root[root@master ssl]# lltotal 72-rw-r--r-- 1 root root 1679 Sep 4 18:17 admin-key.pem-rw-r--r-- 1 root root 1391 Sep 4 18:17 admin.pem-rw-r--r-- 1 root root 997 Sep 4 18:22 aggregator-proxy.csr-rw-r--r-- 1 root root 219 Sep 4 16:54 aggregator-proxy-csr.json-rw------- 1 root root 1679 Sep 4 18:22 aggregator-proxy-key.pem-rw-r--r-- 1 root root 1383 Sep 4 18:22 aggregator-proxy.pem-rw-r--r-- 1 root root 294 Sep 4 16:42 ca-config.json-rw-r--r-- 1 root root 1679 Sep 4 16:42 ca-key.pem-rw-r--r-- 1 root root 1350 Sep 4 16:42 ca.pem-rw-r--r-- 1 root root 17 Sep 9 07:35 ca.srl-rw-r--r-- 1 root root 1082 Sep 4 18:23 kubelet.csr-rw-r--r-- 1 root root 281 Sep 4 16:56 kubelet-csr.json-rw------- 1 root root 1679 Sep 4 18:23 kubelet-key.pem-rw-r--r-- 1 root root 1448 Sep 4 18:23 kubelet.pem-rw-r--r-- 1 root root 1265 Sep 4 18:22 kubernetes.csr-rw-r--r-- 1 root root 466 Sep 4 16:54 kubernetes-csr.json-rw------- 1 root root 1675 Sep 4 18:22 kubernetes-key.pem-rw-r--r-- 1 root root 1631 Sep 4 18:22 kubernetes.pem
2、自定义证书
# 生成自定义key# (umask 077; openssl genrsa -out unclejoker.key 2048)# 生成csr签名请求文件# openssl req -new -key unclejoker.key -out unclejoker.csr -subj "/CN=unclejoker"# 用CA证书进行签名# openssl x509 -req -days 365 -in unclejoker.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out unclejoker.crt
3、配置集群config,添加集群(由于我们这里只有一个集群,所以这步不操作)
命令如下:
# kubectl config set-cluster joker-kubernetes --server=https://172.16.1.128:6443 --certificate-authority=./ca.pem --embed-certs=true
4、配置集群config,添加用户
命令如下:
# kubectl config set-credentials unclejoker --client-certificate=./unclejoker.crt --client-key=./unclejoker.key --embed-certs=true
5、添加上下文关联contexts,命令如下:
# kubectl config set-context unclejoker@joker-kubernetes --cluster=joker-kubernetes --user=unclejoker --namespace=default
到此就配置完成,如果要使用这个用户,则配置current-context
# kubectl config use-context unclejoker@joker-kubernetes
这是我们使用kubectl等操作就是在unclejoker用户下执行了。
