Я пытаюсь реализовать кластер lizardfs, используя mesos/marathon. Для этой цели я создал некоторые докеры.Ограничения марафона для взаимоисключающих контейнеров-докеров
Мне нужно получить контейнер докеров определенного типа (lizardfs-master) НЕ запускаться на том же узле, который уже запускает другой тип контейнера (lizardfs-shadow или lizardfs-metalogger). То есть, мне нужно запустить экземпляр каждого из этих трех типов контейнеров, но они не должны запускаться на одном узле одновременно. Они взаимоисключающие.
Я не хочу ограничивать узлы, которые могут запускать каждый контейнер. Я просто хочу сделать их эксклюзивными.
Есть ли способ сделать это в марафоне, т. Е. Используя ограничения? Как это будет?
Спасибо.
В идеале, моя идея состояла в том, чтобы не привязывать контейнеры докеров к определенным узлам, но этот марафон мог «понять», что он не может запустить определенный контейнер на узле, который уже запускает некоторые другие типы контейнеров. Мне нужен «плоский» кластер, где марафон, в случае нарушения узла, может решить, где запустить этот «мертвый» контейнер, выбрав другой узел, который НЕ запускает взаимоисключающие контейнеры :) –
Да, вы можете дополнительно разделить ваш кластер в группы, а затем используйте ограничение LIKE или UNLIKE, чтобы назначить ваш контейнер группе узлов и взаимно исключить их. –
Делает смысл. Поэтому я могу разбить узлы кластера на непересекающиеся наборы и заставить каждый взаимоисключающий контейнер работать в другом подмножестве узлов. Благодаря! –