我有一个Kubernetes集群(v1.5.6),在vmware上有3个节点etcd集群(etcd版本3.1.5)。这个etcd节点运行在vmware上的coreos上的三个码头容器(三个主机上)中。
我尝试使用以下解决方案备份etcd:
docker run --rm --net=host -v /tmp:/etcd_backup -e ETCDCTL_API=3 quay.io/coreos/etcd:v3.1.5 etcdctl --endpoints=[1.1.1.1:2379,2.2.2.2:2379,3.3.3.3:2379] snapshot save etcd_backup/snapshot.db备份已成功完成。
我想在另一个vmware环境中从零创建这个kubernetes集群,但是我需要从快照恢复etcd。
到目前为止,我还没有找到在码头集装箱中使用etcd的正确解决方案。
我试图用以下方法进行恢复,但不幸的是,我没有成功。
首先,在运行以下命令之后,我创建了一个新的etcd节点:
docker run --rm --net=host -v /tmp/etcd_bak:/etcd_backup -e ETCDCTL_API=3 registry:5000/quay.io/coreos/etcd:v3.1.5 etcdctl snapshot restore etcd_backup/snapshot.db --name etcd0 --initial-cluster etcd0=http://etcd0:2380,etcd1=http://etcd1:2380,etcd2=http://etcd2:2380 --initial-cluster-token etcd-cluster-1 --initial-advertise-peer-urls http://etcd0:2380结果:
2018-06-04 09:25:52.314747 I | etcdserver/membership: added member 7ff5c9c6942f82e [http://etcd0:2380] to cluster 5d1b637f4b7740d5
2018-06-04 09:25:52.314940 I | etcdserver/membership: added member 91b417e7701c2eeb [http://etcd2:2380] to cluster 5d1b637f4b7740d5
2018-06-04 09:25:52.315096 I | etcdserver/membership: added member faeb78734ee4a93d [http://etcd1:2380] to cluster 5d1b637f4b7740d5不幸的是,什么都没发生。
恢复etcd备份的好解决方案是什么?
如何创建空的etcd集群/节点,以及如何恢复快照?
发布于 2018-06-13 01:54:34
根据Etcd 灾后恢复文档,需要将快照中的所有三个etcd节点还原为您的命令,然后使用以下命令运行三个节点:
etcd \
--name m1 \
--listen-client-urls http://host1:2379 \
--advertise-client-urls http://host1:2379 \
--listen-peer-urls http://host1:2380 &此外,还可以从图像中提取etcdctl,如下所示:
docker run --rm -v /opt/bin:/opt/bin registry:5000/quay.io/coreos/etcd:v3.1.5 cp /usr/local/bin/etcdctl /opt/bin然后使用etcdctl恢复快照:
# ETCDCTL_API=3 ./etcdctl snapshot restore snapshot.db \
--name m1 \
--initial-cluster m1=http://host1:2380,m2=http://host2:2380,m3=http://host3:2380 \
--initial-cluster-token etcd-cluster-1 \
--initial-advertise-peer-urls http://host1:2380 \
--data-dir /var/lib/etcd这将将快照还原到/var/lib/etcd目录。然后用docker启动etcd,不要忘记将/var/lib/etcd挂载到容器中,并指定--数据-dir到容器。
发布于 2018-09-14 02:36:12
kubernetes中的Ectd运行在Docker容器中,下面是我为恢复集群所做的工作:
https://stackoverflow.com/questions/50825489
复制相似问题