kubernetes的所用到的证书都是放在/etc/kubernetes/pki/目录下,其中包括etcd,kubelete,api server等组件用到的证书和CA证书。如果你是通过kubeadm安装的cluster集群,你的证书是通过kubeadm自动生成的,默认情况CA的证书有效期是10年,其他证书有效期是1年。当你的证书即将过期或者已经过期时, 我们需要renew这些证书保证集群正常工作。
检查证书过期时间
kubeadm alpha certs check-expiration 检查你集群内证书的有效时间
renew证书
建议renew之前备份一下/etc/kubernetes/和/$HOME/.kube/, 以防出错后不可逆。
kubeadm alpha certs renew all 这个命令会更新/etc/kubernetes/pki 下的所有证书,CA证书不包括。
rm -f /etc/kubernetes/*.conf 删除现有的配置文件,因为配置文件里面记录了证书的data,在下一步init的时候如果这些文件存在,conf文件不会重写,导致还是用老证书数据访问进行认证。因为我们之前备份了,所有大胆删掉。
kubeadm init phase kubeconfig all 重新配置conf文件,把新证书的数据写到配置文件里面去。
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 把新生成admin.conf文件代替用户下的配置文件config,由于之前我们备份过,大胆overwrite。
如果你的conig里面配置过其他用户,覆盖后你需要手动把这些配置重新设置,通过kubectl config命令.
systemctl restart docker 重启docker 服务
systemctl restart kubelet 重启kubelet服务
如果docker和kubelet没办法正常启动,建议重启一下机器。