赞
踩
k8s集群突然访问不了了,使用kubectl get node查询节点信息的时候,报如下错误:
The connection to the server <host>:6443 was refused - did you specify the right host or port?
根据报错,查看服务器系统日志,看到如下报错:
"Failed to run kubelet" err="failed to run Kubelet: unable to load bootstrap kubeconfig: stat /etc/kubernetes/bootstrap-kubelet.conf: no such file or directory"
根据报错信息可以看到bootstrap-kubelet.conf文件已经不存在了,导致kubelet无法启动。应该是证书过期了,才导致无法执行kubectl命令了。需要手动来更新证书文件。
集群是用kubeadm来部署的。需要执行kubeadm命令来进行更新证书。
1、首先是备份,将原有的文件先移到别的地方
cd /etc/kubernetes/pki/
$ 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} ~/
2、更新证书
$ kubeadm init phase certs all --apiserver-advertise-address <IP>
3、备份配置文件
cd /etc/kubernetes/
$ mv {admin.conf,controller-manager.conf,kubelet.conf,scheduler.conf} ~/
kubeadm init phase kubeconfig all
4、重启服务器
reboot
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
执行完这几步以后,在试下kubectl get node,就可以查询出来node节点信息了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。