Можно ли установить Docker для динамического соответствия рою, на котором он работает?

Я попытался сделать заголовок вопроса общим, поскольку я считаю, что это применимо ко многим прецедентам.

Мое конкретное применение этого было бы для ZooKeeper. Если для многих клиентов отправляется одно «решение» [файл docker-swarm.yml], некоторые из которых имеют три узла роя, но другие имеют только один узел (возможно, они меньше и еще не нуждаются в дополнительном полоса пропускания), существует ли способ запуска только одного экземпляра ZooKeeper для случая с одним узлом, но ансамбль с тремя узлами, когда есть 3 узла? Очевидно, потребуется, чтобы каждый экземпляр в последнем случае работал на отдельном физическом узле ….

Вот фрагмент файла docker-stack.yml:

zookeeper: image: zookeeperImageName:actualZKVersionHere deploy: mode: replicated restart_policy: {condition: on-failure, delay: 5s, window: 60s} resources: limits: {memory: 512M} reservations: {memory: 512M} 

Я знаю, что, меняя mode на global выходит очень близко к тому, что я хочу (по крайней мере, для этого варианта использования). Однако, если бы этот подход использовался, как определить строку соединения ZK?

BTW, выполняли одиночные экземпляры ZK на одном узле буквально в течение 5 лет на 100-х экземплярах. Я никогда не видел ни одной проблемы.