Назад | Перейти на главную страницу

Несколько кластеров Core-OS с одним кластером etcd?

Можно ли создать разные кластеры ядра ОС, связанные с одним кластером etcd? Если да, то как?

У меня есть сценарий, в котором мне нужно создать несколько кластеров, но я хочу сохранить один кластер etcd. В настоящее время у меня все экземпляры в одном кластере, даже и т.д. Как мне убедиться, что есть отдельные кластеры?

Я следую подходу, в котором служба etcd2 в каждом экземпляре имеет файл среды dropin (в облачной конфигурации), который включает сведения о начальном кластере.

Кластер в CoreOS управляется флотом, и если вы хотите узнать, как это сделать, посмотрите под «скрытые» 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

Если бы вы могли каким-то образом изменить ключевой префикс, используемый флотом, то у вас должна была быть возможность иметь отдельные кластеры, использующие тот же etcd.

В раздел облачной конфигурации для флота поддерживает это через etcd_key_prefix настройка. По умолчанию это /_coreos.com/fleet/ поэтому установите для него аналогичное значение с ведущей и конечной косой чертой, и все будет в порядке.

Я не пробовал это, но мне было бы интересно узнать, работает ли это для вас. Если настройка облачной конфигурации работает, тогда каждая машина должна иметь конфигурацию примерно так: /run/systemd/system/fleet.service.d/20-cloudinit.conf который включает FLEET_ETCD_KEY_PREFIX переменная окружения. Тогда вы сможете использовать etcdctl чтобы просмотреть ключ и проверить fleetctl операции работают.