#此操作为高危操作,需谨慎操作
1、在节点1进行备份操作
#!/bin/bash
cd /etc/etcd/ssl
endpoints=https://127.0.0.1:2379
export ETCDCTL_API=3
/usr/bin/etcdctl --cacert=ca.pem --cert=client.pem --key=client-key.pem --endpoints=$endpoints snapshot save /home/etcd_backup/`hostname`_`date "+%Y%m%d%H%M".db`
2、在节点1创建目录,执行恢复命令
ETCDCTL_API=3 etcdctl --endpoints 127.0.0.1:2379 snapshot restore etcd-snapshot.db --data-dir /root/member-bak
3、将member-bak拷贝到节点2
4、在节点2执行如下操作
a、停止etcd运行
mv /etc/kubernetes/manifests/etcd.yaml /root/bak20241112
b、检查etcd已停止
docker ps |grep etcd
c、移除原来etcd的数据,member目录
mv /var/lib/etcd/member /root/bak
d、恢复之前备份的自定义目录,到/var/lib/etcd/, 确认member新的存在
mv /member-bak /var/lib/etcd/
e、启动etcd
mv ./etcd.yaml /etc/kubernetes/manifests/
f、 此时可以进行验证