在一次kubernetes的升级过程中,由于之前欠下的技术债务,导致在删除etcd节点时没有把etcd中的成员删除,虽然安装的程序已经删除了,但是etcd集群中通过etcdctl member list还是能看到已删除的节点,而这次升级时候,又删除了了一台etcd节点,刚好etcd节点的节点存活数低于一半了。这是原因
那么针对这种事故该如何处理呢,这里给出个思路,利用etcd的故障恢复,恢复一下具体操作如下
etcd 备份
利用已存活的etcd做个备份
mkdir -p backup/k8s
ETCDCTL_API=3 /root/local/bin/etcdctl snapshot save snapshot.db
修改集群启动参数,强制把集群作为一个新集群启动
找一个最后存活的机子作为节点,然后强制开启一个单节点集群来处理,
vim /etc/systemd/system/etcd.service
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
Documentation