我正在尝试在 docker 中启动 ETCD 节点并恢复从 Kubernetes 集群节点获取的备份。
ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --user=root:'root' snapshot save snapshot.db
我已获取快照并将其下载到本地。如何恢复到已启动的 etcd 节点?
以下命令用于启动容器。我已经安装了数据卷。
docker run -d --restart always \
-p 2379:2379 \
-p 2380:2380 \
--volume=etcd-volume:/etcd-data \
--name etcd gcr.io/etcd-development/etcd:latest \
/usr/local/bin/etcd \
--data-dir=/etcd-data --name etcd \
--initial-advertise-peer-urls http://127.0.0.1:2380 --listen-peer-urls
http://0.0.0.0:2380 \
--advertise-client-urls http://127.0.0.1:2379 --listen-client-urls http://0.0.0.0:2379 \
--initial-cluster etcd=http://127.0.0.1:2380
然后我尝试使用以下方法恢复它。
ETCDCTL_API=3 etcdctl snapshot restore snapshot.db \
--name m1 \
--initial-cluster m1=http://127.0.0.1:2379 \
--initial-cluster-token etcd-cluster \
--initial-advertise-peer-urls http://127.0.0.1:2379 \
--data-dir /var/lib/docker/volumes/etcd-volume
ETCD 集群和 docker 都在两个不同的虚拟机上。我尝试从本地机器执行上述命令,因为必须在 docker 中安装 etcdctl 工具才能执行该命令。恢复尚未发生。我只需要将密钥复制到新机器上。有什么建议吗?