k8s证书过期/使用100年证书
时间:2022-06-07 15:17:00.633 +0800 CST 浏览:805

常见问题

  • 大概的错误提示:certificate has expired or is not yet valid,生成时间更长的有效期,保证证书不会在短时间失效,如果有必要的话,也可以做相应的监控告警。
  • 单机和集群更新证书,都是在所有master上执行后面的的几个步骤。
  • 如果证书已经过期,可以使用date -s '2022-05-06'修改到未过期的时间,然后执行一下后面的几个步骤,最后记得同步最新的时间ntpdate ntp1.aliyun.com,如果发现etcd容器持续重启,可以尝试重启systemctl restart docker && systemctl restart kubelet

kubeadm

修改kubeadm

cd /usr/local/src/
git clone -b v1.18.6 --depth=1 https://github.com/kubernetes/kubernetes.git 
cd kubernetes 
vim cmd/kubeadm/app/constans/constans.go
# 找到 CertificateValidity = time.Hour * 24 * 365, 修改为下面一行内容 CertificateValidity = time.Hour * 24 * 365 * 100 

编译kubeadm

cd /usr/local/src/kubernetes/ 
make WHAT=cmd/kubeadm # 编译完生成_output目录

查看证书过期时间

kubeadm alpha certs check-expiration

备份

cp -rp /etc/kubernetes /etc/kubernetes-$(date +%Y%m%d).bak

更新证书

kubeadm alpha certs renew all

重启服务

# 先重启etcd
# docker ps | grep -E 'k8s_etcd_etcd' | awk -F ' ' '{print $1}' | xargs docker restart
docker ps | grep -E 'etcd'| grep -v pause | grep -v k8s_etcd_apisix | awk -F ' ' '{print $1}' | xargs docker restart
# 重启其他服务
docker ps | grep -E 'k8s_kube-apiserver|k8s_kube-controller-manager|k8s_kube-scheduler' | awk -F ' ' '{print $1}' | xargs docker restart

# 最后再验证下证书的有效期是否更新
kubeadm alpha certs check-expiration


如果这篇文章对你有所帮助,可以通过下边的“打赏”功能进行小额的打赏。

本网站部分内容来源于互联网,如有侵犯版权请来信告知,我们将立即处理。


来说两句吧