记录一次集群更新证书过程,因为集群证书已经更新了,以下只记录操作过程了。
参考:https://blog.csdn.net/Harry_z666/article/details/128015175
1、集群情况
- 版本:v1.23.6
- 部署方式:kubeadm部署
由于使用kubeadm部署,证书有效期为一年,到期后证书失效。
2、master更新集群证书
# 1、master 查看集群过期时间
[root@k8s-master01 ~]# kubeadm certs check-expiration
# 2、查看master节点上的kubelet证书列表和过期时间
[root@k8s-master01 ~]# ls /var/lib/kubelet/pki/ -lh
total 16K
-rw------- 1 root root 2.8K Aug 15 2022 kubelet-client-2022-08-15-23-37-10.pem
-rw------- 1 root root 1.1K May 22 2023 kubelet-client-2023-05-22-21-22-17.pem
lrwxrwxrwx 1 root root 59 May 22 2023 kubelet-client-current.pem -> /var/lib/kubelet/pki/kubelet-client-2023-05-22-21-22-17.pem
-rw-r--r-- 1 root root 2.3K Aug 15 2022 kubelet.crt
-rw------- 1 root root 1.7K Aug 15 2022 kubelet.key
[root@k8s-master01 ~]# openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -text | grep Not
Not Before: May 22 13:17:17 2023 GMT
Not After : May 21 13:17:17 2024 GMT
# 3、备份配置文件和证书文件
[root@k8s-master01 ~]# mkdir /tmp/kubernets_backup/config -p
[root@k8s-master01 ~]# cp -r /etc/kubernetes/ /tmp/kubernets_backup/config/
[root@k8s-master01 ~]# mkdir /tmp/kubernets_backup/pem
[root@k8s-master01 ~]# cp -r /var/lib/kubelet/pki/ /tmp/kubernets_backup/pem/
# 4、更新集群证书
[root@k8s-master01 kubernets_backup]# kubeadm certs renew all
# 5、再次查看过期时间
[root@k8s-master01 ~]# kubeadm certs check-expiration
# 查看证书是否已更新
[root@k8s-master01 ~]# ls /etc/kubernetes/pki/ -lh
3、master更新配置文件
由于前面已经备份过了,直接删除当前配置文件后重新生成
# 1、删除配置文件
[root@k8s-master01 ~]# rm -f /etc/kubernetes/*.conf
# 2、生成新的配置文件
[root@k8s-master01 ~]# kubeadm init --kubernetes-version=v1.23.6 phase kubeconfig all
# 3、替换管理员kubeconfig配置文件
[root@k8s-master01 ~]# cp /etc/kubernetes/admin.conf ~/.kube/config
cp: overwrite ‘/root/.kube/config’? y
# 4、重启kube-scheduler
[root@k8s-master01 ~]# docker rm -f $(docker ps -a | grep scheduler | awk '{print $1}')
# 5、查看kube-scheduler状态
[root@k8s-master01 ~]# kubectl get pods -n kube-system |grep scheduler
kube-scheduler-k8s-master01 1/1 Running 12 512d
4、更新master上的kubelet证书
# 1、通过过程2.5,更新了k8s证书,是不会更新了kubelet.conf的证书的。需要重启kubelet重新生成。因为已经重新生成了kubelet.conf,所以需要重启kubelet。
[root@k8s-master01 ~]# systemctl restart kubelet.service
# 2、重启后查看证书签名请求
[root@k8s-master01 ~]# kubectl get csr
# 3、请求通过
[root@k8s-master01 ~]# kubectl certificate approve <NAME>
# 4、查看证书过期时间
[root@k8s-master01 ~]# openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -text | grep Not
5、更新node节点上的kubelet证书
# 1、查看node上的kubelet证书,主要查看kubelet-client-current.pem的时间戳,这里还是旧的证书
[root@k8s-node01 ~]# ls -lh /var/lib/kubelet/pki/
# 2、查看证书过期时间
[root@k8s-node01 ~]# openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -text | grep Not
# 3、在master节点生成node节点需要的配置文件
[root@k8s-master01 ~]# mkdir /tmp/kubernets_backup/worker -p
[root@k8s-master01 ~]# cd /tmp/kubernets_backup/worker/
[root@k8s-master01 worker]# kubeadm init --kubernetes-version=v1.23.6 phase kubeconfig kubelet --node-name k8s-node01 --kubeconfig-dir /tmp/kubernets_backup/worker/
# 4、备份node节点的配置文件
[root@k8s-node01 ~]# mv /etc/kubernetes/kubelet.conf /etc/kubernetes/kubelet.conf.bak
# 5、替换配置文件
[root@k8s-master01 worker]# scp kubelet.conf root@k8s-node01:/etc/kubernetes/
# 6、重启kubelet
[root@k8s-node01 ~]# systemctl restart kubelet.service
# 7、在master上进行证书认证
[root@k8s-master01 ~]# kubectl get csr
[root@k8s-master01 ~]# kubectl certificate approve <NAME>
标签:证书,过期,master01,kubelet,集群,pem,k8s,root
From: https://www.cnblogs.com/likaifei/p/17956524