CoreOS - 如何使用新令牌?
CoreOS - How to use a new token?
我们有以下问题。在我们的集群中,url 发生了变化。一旦我们更改配置以反映这些更改,urls 就不会在 'discovery.etcd.io' 上更新。所以我们的想法是只使用一个新的令牌。然而,这是行不通的。集群未在 'discovery.etcd.io' 上使用新令牌注册。我们不想每次更改 url 或令牌时都重新安装。有没有更好的办法?重新安装没有问题。
#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>
discovery.etcd.io
仅用于 bootstrapping:例如,您使用 https://discovery.etcd.io/new?size=3 请求多个主机的令牌,并且您基本上将 URL 保留给 bootstrap 你的 3 个主机。
一旦集群被 bootstrapped,集群中的节点现在使用它们自己的本地存储:您的 3 个节点通过发现端点相互了解,现在形成一个具有该信息的集群,因此他们不再需要发现端点。
因此,如果您使用 'new' 令牌,您的集群实际上不会使用它,因为它已经 bootstrapped,因为节点已经形成了自己的集群。
要bootstrap一个新的集群,您需要删除每个节点上的本地数据。
如果您有其他数据需要迁移到新集群,我建议您阅读迁移文档。
基本备份过程如下:
etcdctl backup \
--data-dir /var/lib/etcd \
--backup-dir /tmp/etcd_backup
无需重复安装。下面的流程有助于集群一步步的上起来,而不是有一个巨大的 cloud-configure 文件难以调试。
停止 etcd 和所有依赖的服务(如依赖 etcd2 的 flannel、fleet 等):systemctl stop etcd2
从/var/lib/etcd2/*(或ETCD_DATA_DIR中的路径)删除etcd数据文件
更改存储在云配置文件中的发现令牌:/var/lib/coreos-install/user_data
重启。
我们有以下问题。在我们的集群中,url 发生了变化。一旦我们更改配置以反映这些更改,urls 就不会在 'discovery.etcd.io' 上更新。所以我们的想法是只使用一个新的令牌。然而,这是行不通的。集群未在 'discovery.etcd.io' 上使用新令牌注册。我们不想每次更改 url 或令牌时都重新安装。有没有更好的办法?重新安装没有问题。
#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>
discovery.etcd.io
仅用于 bootstrapping:例如,您使用 https://discovery.etcd.io/new?size=3 请求多个主机的令牌,并且您基本上将 URL 保留给 bootstrap 你的 3 个主机。
一旦集群被 bootstrapped,集群中的节点现在使用它们自己的本地存储:您的 3 个节点通过发现端点相互了解,现在形成一个具有该信息的集群,因此他们不再需要发现端点。
因此,如果您使用 'new' 令牌,您的集群实际上不会使用它,因为它已经 bootstrapped,因为节点已经形成了自己的集群。 要bootstrap一个新的集群,您需要删除每个节点上的本地数据。
如果您有其他数据需要迁移到新集群,我建议您阅读迁移文档。
基本备份过程如下:
etcdctl backup \
--data-dir /var/lib/etcd \
--backup-dir /tmp/etcd_backup
无需重复安装。下面的流程有助于集群一步步的上起来,而不是有一个巨大的 cloud-configure 文件难以调试。
停止 etcd 和所有依赖的服务(如依赖 etcd2 的 flannel、fleet 等):systemctl stop etcd2
从/var/lib/etcd2/*(或ETCD_DATA_DIR中的路径)删除etcd数据文件
更改存储在云配置文件中的发现令牌:/var/lib/coreos-install/user_data
重启。