我们有以下问题。在我们的群集中,网址发生了变化。一旦我们更改配置以反映这些更改,网址就不会在“discovery.etcd.io”上更新。所以我们的想法就是使用一个新的令牌。然而,这并不起作用。群集未在“发现.etcd.io”上注册新令牌。每次我们更改网址或令牌时,我们都不想重新安装。有没有更好的办法?重新安装工作没有问题。
#cloud-config
hostname: server1
coreos:
etcd2:
# generate a new token for each unique cluster from https://discovery.etcd.io/new?size=3
discovery: https://discovery.etcd.io/<our token>
# multi-region and multi-cloud deployments need to use $public_ipv4
advertise-client-urls: server1:2379
initial-advertise-peer-urls: server1:2380
# listen on the official ports
listen-client-urls: server1:2379
listen-peer-urls: server1:2380
#fleet:
# public-ip: server1
# metadata: region=eu-central-1
#update:
# reboot-strategy: etcd-lock
units:
- name: etcd2.service
command: start
# - name: fleet.service
# command: start
ssh_authorized_keys:
<our ssh keys>
答案 0 :(得分:4)
您无需重复重新安装。以下过程有助于逐步启动集群,而不是拥有难以调试的庞大云配置文件。
停止etcd和所有依赖服务(如依赖于etcd2的法兰绒,舰队等):systemctl stop etcd2
从/ var / lib / etcd2 / *(或ETCD_DATA_DIR中的路径)删除etcd数据文件
更改存储在以下位置的云配置文件中的发现令牌:/ var / lib / coreos-install / user_data
重新启动。
答案 1 :(得分:2)
discovery.etcd.io
仅用于引导:例如,您为许多具有https://discovery.etcd.io/new?size=3的主机请求令牌,并且您基本上保留该URL以引导您的3个主机。
群集启动后,群集中的节点现在使用自己的本地存储:您的3个节点通过发现端点相互了解,现在形成具有该信息的群集,因此它们不需要发现终点了。
因此,如果您使用“新”令牌,则您的群集实际上不会使用它,因为它已经自动引导,因为节点已经形成了自己的群集。 要引导新群集,您需要删除每个节点上的本地数据。
如果您有其他数据需要迁移到新群集,我建议您阅读迁移文档。
基本备份程序如下:
etcdctl backup \
--data-dir /var/lib/etcd \
--backup-dir /tmp/etcd_backup