k8s集群故障之-etcd启动异常

网友投稿 908 2022-09-09

k8s集群故障之-etcd启动异常

故障问题

执行kubectl get nodes命令出现如下错误信息:

the connection to server 192.168.58.100:6443 was refused

问题分析

步骤一

在k8s集群中6443是apiserver的端口,通过docker ps -a查看到apiserver处于Exited状态;

步骤二

docker logs -f apiserver的CONTAINER ID

查看apiserver服务容器的启动日志, 发现又出现报错Error while dialing dial tcp 127.0.0.1:2379: connect: connection refused,2379是etcd的端口,那么apiserver是由于etcd无法连接而启动不了。

步骤三

接着查看etcd的启动日志,发现报错mvcc: cannot unmarshal event: proto: wrong wireType = 0 for field Key经查询资料,此报错是由于服务器非正常关机(意外掉电,强制拔电)后 etcd数据损坏导致的,这个节点之前确实是出现异常关机,etcd无法启动,那么解决此问题就行了。

步骤四

在故障节点上停止etcd服务并删除损坏的 etcd数据,现在etcd服务本来就没有启动,删除前先备份数据,最后启动etcd服务。etcd容器的数据在/var/lib/etcd/member目录下;

#不知道路径可以查找etcd数据目录 find / -type d -name member cd /var/lib/etcd/member #删除或者移走备份都可以 rm -rf *

步骤五

然后先启动etcd服务,然后启动api-server,最后执行kubectl get nodes后可以正常显示节点状态,该问题成功解决。

注:k8s集群遇到这种问题,etcd和apiserver会一直重启,因此不需要手动启动etcd和apiserver,等待它自动重启成功即可。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:k8s--命名空间 namespaces
下一篇:4S店如何做内容营销?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~