etcd和apiserver无法正常启动

K8S是当前主流的容器编排工具, 你可以通过K8S轻松管理你的容器服务, 今天出现集群中一个节点出现异常重启后, etcd和api-server出现无法正常启动, 下面我们就来看看具体是排查和解决的 。

etcd和apiserver无法正常启动

文章插图

需要这些哦
K8Swu
kubernetes1.16.0
etcdwu
api-server
方式/
1
一:K8S集群节点异常重启后, 再终端执行kubectl get nodes号令, 呈现报错dial tcp 10.200.18.100:6443: connect: connection refused 。
etcd和apiserver无法正常启动

文章插图

2
二:经由过程docker ps -a可以看到api此刻处于exit退出状况 。
etcd和apiserver无法正常启动

文章插图

3
三:查看apiserver办事容器的启动日记, 发现又呈现报错Error while dialing dial tcp 127.0.0.1:2379: connect: connection refused, 2379是etcd的端口, 那么apiserver是因为etcd无法毗连而启动不了 。
etcd和apiserver无法正常启动

文章插图

4【etcd和apiserver无法正常启动】
四:接着查看etcd的启动日记, 发现报错mvcc: cannot unmarshal event: proto: wrong wireType = 0 for field Key 。 经查询资料, 此报错是因为办事器非正常关机(不测失落电, 强制拔电)后 etcd数据损坏导致的, 这个节点之前确实是呈现异常关机, etcd无法启动, 那么解决此问题就行了 。
etcd和apiserver无法正常启动

文章插图
etcd和apiserver无法正常启动

文章插图

5
五:按照指导进行操作, 在故障节点上遏制etcd办事并删除损坏的 etcd 数据, 此刻etcd办事原本就没有启动, 删除前先备份数据, 最后启动etcd办事 。
注:容器的数据在/var/lib目次下, 按照下图操作 。
etcd和apiserver无法正常启动

文章插图

6
六:最后先启动etcd办事, 然后启动api-server, 执行kubectl get nodes后可以正常显示节点状况, 问题解决 。

6
注重事项天天都是元气满满的一天!
若是帮忙到了您, 记得存眷我哦!

以上内容就是etcd和apiserver无法正常启动的内容啦, 希望对你有所帮助哦!

    推荐阅读