内容纲要
概要描述
Etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现,它通过Raft一致性算法处理日志复制以保证强一致性,我们可以理解它为一个高可用强一致性的服务发现存储仓库。
本文介绍单节点etcd故障的修复方法。
详细说明
1.修复前,检查etcd的pod状态
kubectl -n kube-system get pod -owide 确认etcd pod是否为 1/1 running
执行上述命令查看所有的etcd pod状态,确定有几个etcd pod状态不正常
2.修复前,检查etcd是否都是healthy:successfully
执行ETCDCTL_API=3 etcdctl –cacert /srv/kubernetes/etcd-ca.pem –cert /srv/kubernetes/etcd.pem –key /srv/kubernetes/etcd-key.pem –endpoints https://tdh6-1:4001,https://tdh6-2:4001,https://tdh6-3:4001 endpoint health(命令中的hostname注意要换成自己集群etcd所在节点的)
针对单节点的etcd故障,采用以下修复方法
3.单节点etcd故障修复
mv /opt/kubernetes/manifests-multi/tos-etcd.manifest /tmp/tos-etcd.manifest
mv /var/etcd/data /var/etcd/data_bak
编辑 /tmp/tos-etcd.manifest,修改参数–initial-cluster-state的值为existing,如果new,则new改为existing
mv /tmp/tos-etcd.manifest /opt/kubernetes/manifests-multi/tos-etcd.manifest