背景:
默认情况下部署kubernetes集群的证书一年内便过期,如果不及时升级证书导致证书过期,Kubernetes控制节点便会不可用,所以需要升级Kubernetes集群版本或者及时更新Kubernetes证书避免因证书过期导致集群不可用问题。
注意:生产环境一般不会升级Kubernetes版本,所以还可以修改kubeadm源码,修改证书过期时间,重新编译kubeadm使其颁发的Kubernetes证书时间为我们想要的年限。
步骤:
1、查看证书过期时间
kubeadm alpha certs check-expiration
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
注意:如果是多个master节点,需要同步证书到其他master节点上,或者每个master节点都执行上面步骤。
再次查看证书过期时间发现证书过期时间延后了一年:
修改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
至此,证书升级完成。