背景: 

    默认情况下部署kubernetes集群的证书一年内便过期,如果不及时升级证书导致证书过期,Kubernetes控制节点便会不可用,所以需要升级Kubernetes集群版本或者及时更新Kubernetes证书避免因证书过期导致集群不可用问题。

kubeadm升级Kubernetes证书(证书未过期)_证书过期

注意:生产环境一般不会升级Kubernetes版本,所以还可以修改kubeadm源码,修改证书过期时间,重新编译kubeadm使其颁发的Kubernetes证书时间为我们想要的年限。

步骤:

1、查看证书过期时间

kubeadm alpha certs check-expiration

kubeadm升级Kubernetes证书(证书未过期)_重启_02

2、备份证书

备份原有证书

cp -r /etc/kubernetes/ /tmp/backup/

备份etcd证书

cp -r /etc/ssl/etcd /tmp/etcd-backup/

3.开始更新证书

提取集群信息

kubeadm config view > cluster.yaml

注意:如果导出来的 cluster.yaml和集群实际节点不一致需要按机器实际节点信息修改这个yaml文件。

通过提取的信息更新证书和配置文件

kubeadm alpha certs renew all --config=cluster.yaml

kubeadm升级Kubernetes证书(证书未过期)_重启_03

注意:如果是多个master节点,需要同步证书到其他master节点上,或者每个master节点都执行上面步骤。

再次查看证书过期时间发现证书过期时间延后了一年:

kubeadm升级Kubernetes证书(证书未过期)_重启_04

修改config文件

cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

4、重启kube-system下的apiserver,controller,scheduler的Pod

kubeadm升级Kubernetes证书(证书未过期)_证书过期_05

 至此,证书升级完成。