以阿里云ACK集群为例进行说明:
备份
通过ack-etcd-backup-operator进行备份,这里对备份不做过多说明。
模拟故障
1停止ETCD服务
在3台master几点即etcd服务所在节点,将etcd服务关停
~]$systemctl stop etcd
~]$ systemctl status etcd
2 破坏数据
因为是模拟故障,所以先备份,然后在销毁数据
~]$ cp -rf /var/lib/etcd{,.bak}
~]$ rm -rf /var/lib/etcd/data.etcd
数据恢复
1 从oss上获取备份数据
~]$ wget ${oss_data_url}
2 执行恢复操作
分别在3台主机上执行数据恢复,这里需要替换--name,--initial-cluster-token,--initial-advertise-peer-urls,--initial-cluster 的值,这些值可以通过cat /usr/lib/systemd/system/etcd.service查看到。同时替换最后面的数据文件为oss下载的得到的文件。
### 举例说明
# 主机 172.16.1.59:
ETCDCTL_API=3 etcdctl \
--name=172.16.1.59-name-1 \
--endpoints="https://172.16.1.59:2379" \
--cacert=/var/lib/etcd/cert/ca.pem \
--cert=/var/lib/etcd/cert/e