2015-10-15 4 views
0

Я пытаюсь реализовать кластер lizardfs, используя mesos/marathon. Для этой цели я создал некоторые докеры.Ограничения марафона для взаимоисключающих контейнеров-докеров

Мне нужно получить контейнер докеров определенного типа (lizardfs-master) НЕ запускаться на том же узле, который уже запускает другой тип контейнера (lizardfs-shadow или lizardfs-metalogger). То есть, мне нужно запустить экземпляр каждого из этих трех типов контейнеров, но они не должны запускаться на одном узле одновременно. Они взаимоисключающие.

Я не хочу ограничивать узлы, которые могут запускать каждый контейнер. Я просто хочу сделать их эксклюзивными.

Есть ли способ сделать это в марафоне, т. Е. Используя ограничения? Как это будет?

Спасибо.

ответ

0

Я мог представить, что есть несколько подходов к этому. :)

Я хотел бы сделать следующее ..

Настройка 3 приложения, каждый из которых для конкретного Docker изображения (мастер, тень, metalogger). Тогда вы можете создать ограничение на приложение, которое связывает применение к конкретным узлам:

"constraints": [["hostname", "CLUSTER", "a.specific.node.com"]] 

https://github.com/mesosphere/marathon/blob/master/docs/docs/constraints.md#cluster-operator

Я думаю, вы можете также определить несколько узлов.

Я не проверял это, но это выглядит разумным для меня. ;)

+0

В идеале, моя идея состояла в том, чтобы не привязывать контейнеры докеров к определенным узлам, но этот марафон мог «понять», что он не может запустить определенный контейнер на узле, который уже запускает некоторые другие типы контейнеров. Мне нужен «плоский» кластер, где марафон, в случае нарушения узла, может решить, где запустить этот «мертвый» контейнер, выбрав другой узел, который НЕ запускает взаимоисключающие контейнеры :) –

+0

Да, вы можете дополнительно разделить ваш кластер в группы, а затем используйте ограничение LIKE или UNLIKE, чтобы назначить ваш контейнер группе узлов и взаимно исключить их. –

+0

Делает смысл. Поэтому я могу разбить узлы кластера на непересекающиеся наборы и заставить каждый взаимоисключающий контейнер работать в другом подмножестве узлов. Благодаря! –

 Смежные вопросы

  • Нет связанных вопросов^_^