开发在CICD过程中发现报错 我进去Jenkins里面看发现6443端口不通了 我一想k8s挂了,然后进去看日志发现证书过期了 然后api-server不提供服务了
kubeadm安装的集群,默认的自签名证书有效期只有一年 需要到期更新 最好是提前更新 不然会耽误业务
解决方案- 查看证书到期情况
find /etc/kubernetes/pki/ -type f -name "*.crt" -print|egrep -v 'ca.crt$'|xargs -L 1 -t -i bash -c 'openssl x509 -noout -text -in {}|grep After'
- 备份原来的证书
find /etc/kubernetes/pki/ -regex '.*.[crt|key]'|grep -v sa|grep -v ca|xargs -i cp {} /opt/
- kubernetes v1.15更新证书的方法
1.更新/etc/kubernetes/pki目录下的所有证书(不包含ca证书)
kubeadm alpha certs renew all
2.检查csr状态,如果没有approved,则手动执行如下命令
kubectl get csr
kubectl get csr|grep -v NAME|awk '{print $1}'|xargs kubectl certificate approve3.重启一下docker和kubelet服务
systemctl restart kubelet systemctl restart docker
4.查看更新的证书时间 做好下次提前更新的准备
find /etc/kubernetes/pki/ -type f -name "*.crt" -print|egrep -v 'ca.crt$'|xargs -L 1 -t -i bash -c 'openssl x509 -noout -text -in {}|grep After'



