多个 Core-OS 集群与一个 etcd 集群?

多个 Core-OS 集群与一个 etcd 集群?

是否可以创建不同的核心操作系统集群并将其全部链接到 1 个 etcd 集群?如果可以,如何操作?

我有一个场景,我需要创建多个集群,但我想保留一个 etcd 集群。目前,我最终将所有实例都放在同一个集群中,甚至 etcd 本身也是如此。如何确保有单独的集群?

我遵循的方法在每个实例中都有一个 dropin 环境文件(在云配置中),其中包含有关初始集群的详细信息

答案1

CoreOS 中的集群由 fleet 管理,如果你想了解如何管理,请查看“隐藏”etcd/_coreos.com/fleet

$ etcdctl ls /_coreos.com/fleet
/_coreos.com/fleet/machines
/_coreos.com/fleet/engine
/_coreos.com/fleet/lease
/_coreos.com/fleet/unit
/_coreos.com/fleet/job
/_coreos.com/fleet/state
/_coreos.com/fleet/states

如果您可以以某种方式更改 fleet 使用的关键前缀,那么您应该能够使用相同的 etcd 拥有单独的集群。

舰队的云配置部分确实通过设置支持这一点etcd_key_prefix默认情况下因此/_coreos.com/fleet/,将其设置为带有前导斜杠和尾随斜杠的类似值,就可以了。

我还没有尝试过,但我很想知道这对您是否有效。如果 cloud-config 设置有效,那么每台机器都应该有一个/run/systemd/system/fleet.service.d/20-cloudinit.conf包含FLEET_ETCD_KEY_PREFIX环境变量的配置。然后,您应该能够使用etcdctl它来查看密钥并验证fleetctl操作是否有效。

相关内容