Kubernetes:恢复ETCD集群的选项

xkftehaa  于 2024-01-07  发布在  Kubernetes
关注(0)|答案(1)|浏览(178)

关于保存/恢复快照,我通常执行以下操作(在本地节点上,而不是主节点上):
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
第一个是:

  1. 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不会恢复以前的数据。
真的很感激任何指导,似乎不能找到一个答案在线,因为有这么多的主题和这么多不同的选择。
此致,

y4ekin9u

y4ekin9u1#

我也遇到了同样的困境:在k8s文档中,出现了什么,表明恢复可以通过网络执行。至少对于etcdctl snapshot restore风格的命令(在etcd 3.5之前,他们似乎已经切换到etcdutl进行恢复),--endpoint参数似乎没有任何影响。

  1. ETCDCTL_API=3 etcdctl --debug
  2. --endpoints=https://127.0.0.1:2378
  3. --cert=servertypo.crt
  4. --key=servertypo.key
  5. --cacert=catypo.crt
  6. snapshot restore /tmp/a.db

字符串
snapshot restore选项在当前目录中创建一个新目录,名为default.etcd,在此创建一个已恢复的etcd datadir(member/ a.s.o.),完全忽略--endpoints选项-正如您所看到的,端口是错误的。
--datadir参数确实改变了这个位置(因此,default.etd--datadir的默认值)。--cacert--cert--key参数也是如此,它们似乎完全被忽略了-如果你注意到上面的话,我为所有三个都包含了“typos”-它们不存在。
所以,从我收集的信息来看,没有**“* 在线恢复/网络恢复 *”选项(即通过网络-或者至少我找不到它。

相关问题