先用docker ps -a 查看最近docker容器是否正常运行,发现api-server的容器刚刚退出。
然后查看他的日志:
docker logs [api-server-id]
显示错误
docker:x509:certificate has expired or is not yet valid
使用kubeadm安装k8s时,默认生成的client certificate的有效期是1年。
可以使用kubeadm certs check-expiration
查看证书命令下有哪些功能
[root@kubernetes ~]# kubeadm certs -h
生成新的证书:
[root@kubernetes etc]# kubeadm certs renew all
此时所有证书都已重新生成,在 /etc/kubernetes/pki 下。/etc/kubernetes/admin.conf、/etc/kubernetes/controller-manager.conf、/etc/kubernetes/scheduler.conf 也已经更新了
复制/etc/kubernetes/admin.conf 到~/.kube/config
然后重启docker 和kubelet
systemctl restart docker
systemctl restart kubelet
然后检查状态,
kubectl -p nodes
kubectl -p pods
发现都已经正常了。