我有一个运行在vmware上的 Kubernetes 集群(版本为 v1.5.6),其中包含三个 etcd 节点(版本为 3.1.5)。这些 etcd 节点分别运行在 vmware 上的三个 docker 容器中,每个容器位于不同的主机上,使用 coreos 操作系统。
我尝试使用以下方法备份 etcd:
备份已成功完成。
我想在另一个VMware环境中从零开始创建这个Kubernetes集群,但我需要从快照中还原etcd。
到目前为止,我还没有找到适用于Docker容器中的etcd的正确解决方案。
我尝试使用以下方法进行恢复,但不幸的是我没有成功。
首先,在运行以下命令后,我创建了一个新的etcd节点:
我尝试使用以下方法备份 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。
到目前为止,我还没有找到适用于Docker容器中的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集群/节点,并如何恢复快照?