集群中某node状态为notReady,apiserver 报错Unable to authenticate the request due to an error: x509: certificate has expired or is not yet valid
1 查看证书有效期
openssl x509 -in /etc/ssl/k8s/kubelet.crt -noout -text
在证书过期node节点删除kubelet相关证书文件及配置文件然后重启kubelet,kubelet会向apiserver发起一个csr。
2 删除kubelet相关证书
rm /etc/kubernetes/kubelet.kubeconfig
rm /etc/kubernetes/ssl/kubelet.*
3 重启kubelet
systemctl restart kubelet
systemctl status kubelet
4 apiserver 查看未授权的CSR请求,并授权
kubectl get csr
#获取到的csr若为csr-4pw6g
kubectl certificate approve csr-4pw6g
5 查看node状态
kubectl get node
Ready则处理完成
在kubernetes1.7之后,可以采用集群自动签发证书方案,但仍然需要手动重启kubelet, 在1.8之后,就可以自动签发,自动renew证书;也可以设置更长的有效期。