k8s之认证文件丢失

首先集群状态无法查看,检查了防火墙,selinux是否关闭。随后检查sawp是否禁用。

关闭swap

swapoff -a

都不是以上问题。查看kubulet进程,发现kubelet有报错。

报错信息

systemctl status kubelet
failed to run Kubelet: unable to load bootstrap kubeconfig: stat /etc/kubernetes/bootstrap-kubelet.conf: no such file or directory

显示目前无法启动kubelet进程。

解决方法:重新生成证书

  • 备份并重新生成证书
cd /etc/kubernetes/pki/
mkdir backup
mv  apiserver.crt apiserver-etcd-client.key apiserver-kubelet-client.crt front-proxy-ca.crt front-proxy-client.crt front-proxy-client.key front-proxy-ca.key apiserver-kubelet-client.key apiserver.key apiserver-etcd-client.crt backup
kubeadm init phase certs all
  • 备份并重新生成配置文件
cd /etc/kubernetes/
mkdir backup
mv admin.conf controller-manager.conf kubelet.conf scheduler.conf  backup
kubeadm init phase kubeconfig all

配置文件生成完后,会将原有的pod,svc,ns等资源去除,配置的一些内容也很更新,需要确认。

如:你将master节点设置为可以调度,将配置文件重新生成后,master节点会恢复到原来的不可调度的情况,当你的k8s集群只要一个master节点,那么pod将没有机器可以调度。

pod会一直处于pending的状态,这时describe查看pod信息。

要慎重,因为这样做会将原有集群生成的资源信息重置掉。(目前按照这种方法做了,kubelet可以起来,集群正常。)
没有办法重试其他方式。

Logo

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

更多推荐