问题描述

本地有一个1master2worker的k8s集群,今天启动VMware虚拟机之后发现api-server没有起来,docker一直退出,这个集群是使用kubeadm安装的。

于是kubectl logs查看了日志,发现证书过期了

在这里插入图片描述

解决方案:

查看证书

# kubeadmcerts check-expiration

在这里插入图片描述

重新生成证书

这步会覆盖/etc/kubernetes/pki下面的证书文件

# kubeadm certs renew all

在这里插入图片描述在这里插入图片描述在这里插入图片描述根据提示,重启docker【kube-apiserver, kube-controller-manager, kube-scheduler and etcd】

# docker stop docker.service
# docker stop docker.socket

更新kubelet证书

在这里插入图片描述同样,证书已过期
这里可以直接删除/etc/kubernetes的conf文件,因为conf文件都是用的旧的证书生成的配置,我们用新生成的证书重新生成配置

# kubeadm init --kubernetes-version=v1.22.2 phase kubeconfig all

在这里插入图片描述kubelet也生成了新的证书和conf文件,过期时间也更新了
在这里插入图片描述在这里插入图片描述拷贝admin.config到~/.kube/config,此时集群可以访问了

# cp /etc/kubernetes/admin.conf ~/.kube/config

在这里插入图片描述将kubelet.conf文件拷贝到各个node节点上,node节点重启kubelet
在这里插入图片描述
在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐