先用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
发现都已经正常了。

06-27 12:32