出现以下问题,极有可能是apiserver 证书过期导致:
1,kuboard/k8s无法正常拉取镜像。
2,kuboard/k8s重启后执行 kubectl get nodes报错:
Unable to connect to the server: x509: certificate has expired or is not yet valid
查看证书是否过期:
执行:openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text | grep Not
提示如下则为证书过期:
k8s自带的apiserver证书是一年的有效期。
/etc/kubernetes/pki/apiserver.crt #1年有效期
/etc/kubernetes/pki/front-proxy-ca.crt #10年有效期
/etc/kubernetes/pki/ca.crt #10年有效期
/etc/kubernetes/pki/apiserver-etcd-client.crt #1年有效期
/etc/kubernetes/pki/front-proxy-client.crt #1年有效期
/etc/kubernetes/pki/etcd/server.crt #1年有效期
/etc/kubernetes/pki/etcd/ca.crt #10年有效期
/etc/kubernetes/pki/etcd/peer.crt #1年有效期
/etc/kubernetes/pki/etcd/healthcheck-client.crt #1年有效期
/etc/kubernetes/pki/apiserver-kubelet-client.crt #1年有效期
使用命令统一查看证书过期时间:
kubeadm certs check-expiration
解决办法,更换证书:
1,下载脚本:
2,添加可执行权限:chmod +x update-kubeadm-cert.sh
3,重启systemctl restart kubelet。
查看集群状态:
systemctl status kubelet
kubectl get nodes, kubectl get pods