1、检查过期时间
for i in $(ls /etc/kubernetes/pki/*.crt);do echo ======$i======;openssl x509 -noout -text -in $i|grep Not;done
kubeadm alpha certs check-expiration
# 该命令显示 /etc/kubernetes/pki 文件夹中的客户端证书以及 kubeadm(admin.conf、controller-manager.conf 和 scheduler.conf) 使用的 kubeconfig 文件中嵌入的客户端证书的到期时间/剩余时间。
# 另外,kubeadm 会通知用户证书是否由外部管理; 在这种情况下,用户应该小心的手动/使用其他工具来管理证书更新。
2、备份数据
cp -rp /etc/kubernetes /etc/kubernetes.bak
kubeadm config view > /tmp/cluster.yaml
cp /root/.kube/config /root/.kube/config.bak
3、更新部分过期证书
kubeadm 不能管理由外部 CA 签名的证书。
##更新证书
kubeadm alpha certs renew all #尝试全部更新,如报错,手动执行未更新的证书,如下操作
kubeadm alpha certs renew apiserver #手动更新apiserver证书
kubeadm alpha certs renew apiserver-kubelet-client
kubeadm alpha certs renew front-proxy-client
kubeadm alpha certs renew admin.conf
kubeadm alpha certs renew controller-manager.conf
kubeadm alpha certs renew scheduler.conf
# 替换/root/.kube/config证书
cp /etc/kubernetes/admin.conf /root/.kube/config
4、重启相应服务
docker ps | grep -v pause | grep -E "k8s_kube-scheduler|k8s_kube-controller|k8s_kube-apiserver" | awk '{print $1}' | xargs docker restart
5、再次验证证书有效期
for i in $(ls /etc/kubernetes/pki/*.crt);do echo ======$i======;openssl x509 -noout -text -in $i|grep Not;done
kubeadm alpha certs check-expiration
6、查看相应集群状态和pod状态
kubectl get pod -n kube-system
kubectl get nodes