服务器非正常关机(意外掉电、强制拔电)后 etcd 数据损坏,如何恢复etcd集群

问题描述:服务器非正常关机(意外掉电、强制拔电)后 etcd 数据损坏。通过下述现象3或者4能确定是出现了数据损坏问题;现象1和2是表象。

现象:1、因为当前kube-apiserver 是跟本地的 etcd 通信,etcd 数据损坏会导致 apiserver无法启动;

通过在正常节点执行kubectl get pod --namespace kube-system|grep apiserver|grep node-x可看到 x 节点的 apiserver 不是处于READY 1/1 + STATUS Running状态。

2、节点处于 NotReady 状态,因为 kubelet 是跟127.0.0.1的 apiserver 通信(在 master 节点是直接本地;在 node 节点是通过 Nginx 代理转发)。

通过在正常节点执行kubectl get node| grep node-x可看到 x 节点处于 NotReady 状态。如果故障超过10分钟,ECMS 会告警: 控制服务节点状态离线超时

3、etcd 服务无法启动,日志中有如下类似错误:

2018-11-07 09:07:03.391264 C | mvcc: cannot unmarshal event: proto: wrong wireType = 0 for field Key

4、对 etcd db 进行数据校验,发现数据被损坏:

[root@node-1 ~]# bolt check /var/lib/etcd/member/snap/db
page 1143: multiple references
page 1072: multiple references
page 1122: mult
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值