关于保存/恢复快照,我通常执行以下操作(在本地节点上,而不是主节点上):
ETCDCTL_API=3 etcdctl --endpoints=”https://127.0.0.1:2379“--cacert=/opt/local/ca.crt --cert=/opt/local/etcd-client.crt --key=/opt/local/etcd-client.key snapshot保存/etc/data/etcd-snapshot. db
在文档中,有两种恢复选项。
https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/#built-in-snapshot
第一个是:
ETCDCTL_API=3 etcdctl --data-dir <data-dir-location> snapshot restore snapshotdb
字符串
.如果etcd在你的主目录上,这很好,这样你就可以把快照恢复目录复制到主目录,并用新的路径更新etcd.yaml,这样它就可以开始使用新的备份了。
第二个选择是:
ETCDCTL_API=3 etcdctl --endpoints=”https://127.0.0.1:2379“--cacert=/opt/local/ca.crt --cert=/opt/local/etcd-client.crt --key=/opt/local/etcd-client.key快照恢复/etc/data/etcd-snapshot. db
我假设如果我们使用--endpoints和URL并包含证书,它会直接更新ETCD DB,但情况似乎并非如此,因为命令运行正常,但ETCD不会恢复以前的数据。
真的很感激任何指导,似乎不能找到一个答案在线,因为有这么多的主题和这么多不同的选择。
此致,
1条答案
按热度按时间y4ekin9u1#
我也遇到了同样的困境:在k8s文档中,出现了什么,表明恢复可以通过网络执行。至少对于
etcdctl snapshot restore
风格的命令(在etcd 3.5
之前,他们似乎已经切换到etcdutl
进行恢复),--endpoint
参数似乎没有任何影响。字符串
snapshot restore
选项在当前目录中创建一个新目录,名为default.etcd
,在此创建一个已恢复的etcd datadir(member/
a.s.o.),完全忽略--endpoints
选项-正如您所看到的,端口是错误的。--datadir
参数确实改变了这个位置(因此,default.etd
是--datadir
的默认值)。--cacert
,--cert
和--key
参数也是如此,它们似乎完全被忽略了-如果你注意到上面的话,我为所有三个都包含了“typos”-它们不存在。所以,从我收集的信息来看,没有**“* 在线恢复/网络恢复 *”选项(即通过网络-或者至少我找不到它。