因为服务器过保要下线,需要将etcd迁移到新的机器上,下面是我的踩坑记录:
迁移流程
1. 执行数据备份
备份 v2:
$ etcdctl --endpoints <endpoints> --ca-file <ca-file> --cert-file <cert-file> --key-file <key-file> backup --data-dir <data-dir> --backup-dir <back-dir>
Example:
$ etcdctl --endpoints <endpoints> --ca-file <ca-file> --cert-file <cert-file> --key-file <key-file> backup --data-dir /home/work/etcd/data --backup-dir /home/work/backup/etcd
注:此处的数据目录为:
/home/work/etcd/data
,备份路径为:/home/work/backup/etcd
备份 v3:
首先设置API为v3:
$ echo "export ETCDCTL_API=3" >> ~/.bashrc
$ source ~/.bashrc
备份v3数据:
$ etcdctl --endpoints <endpoints> --cacert <ca-file> --cert <cert-file> --key <key-file> snapshot save <back-file>
Example:
$ etcdctl --endpoints <endpoints> --cacert <ca-file> --cert <cert-file> --key <key-file> snapshot save /home/work/backup/etcd/member/snap/db
注:此处的数据存储目录为
/home/work/backup/etcd/member/snap/db
,这里路径和v2的备份路径相关联,具体关联如下