2015-12-17 2 views
0

У меня есть кластер из 3 ведомых Mesos, где у меня есть два приложения: «redis» и «memcached». Если redis зависит от memcached, и требуется, чтобы оба приложения/службы запускались на одном и том же узле вместо разных подчиненных узлов.Предоставление для запуска группы приложений на одном ведомом Mesos

Итак, я создал группу приложений и правильно добавил зависимость в файле JSON. После запуска JSON-файла с помощью API-интерфейса REST API «v2/groups» я наблюдаю, что когда-нибудь обе группы приложений начнут работать на одном узле, но иногда они начнутся с разных подчиненных устройств, что нарушит наше требование.

Так что умысел/требование: если какое-либо приложение не запускается на подчиненном устройстве, приложение должно переходить на другой подчиненный узел. Также я могу настроить файл JSON, чтобы сообщить Marathon о запуске группы приложений на ведомом-1 (конкретный подчиненный вначале), если он доступен, иначе запустите его на другом ведомом в кластере. По какой-то причине, если эта группа приложений будет запущена на другом подчиненном устройстве, Marathon может повторно запустить группу приложений в slave-1, если она доступна для обслуживания запроса.

Заранее благодарим за помощь.

ответ

1

Edit/Update (2): Mesos, Marathon и DC/Поддержка ОС для стручки доступен теперь: DC/OS: https://dcos.io/docs/1.9/usage/pods/using-pods/ Mesos: https://github.com/apache/mesos/blob/master/docs/nested-container-and-task-group.md Marathon: https://github.com/mesosphere/marathon/blob/master/docs/docs/pods.md


Я полагаю, вы говорите о марафонских приложениях.

Marathon application groups не имеют семантики относительно совместного размещения на одном и том же узле и то же самое относится к зависимостям.

Вы, кажется, ищете Kubernetes like Pod abstraction в марафоне, который находится в дорожной карте, но еще недоступен (см. Обновление выше :-)).

Надеюсь, это поможет!

+0

Спасибо за помощь. Это очень простая функция, я полагаю, что она должна присутствовать в марафоне. Во всяком случае, любая идея, когда Кубернетес выпустит под абстракцию Pod. –

+0

Kubernetes содержит абстракцию Pod с момента выпуска ... – js84

+0

FYI: https: //issues.apache.org/jira/browse/MESOS-2449 – js84

0

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

Посмотрите, например, запрос на

и синтаксис ограничения в

например,

"constraints": [["hostname", "CLUSTER", "slave-1"]] 

следует делать. Недостатком является то, что автоматическое переключение на другой подчиненный не будет таким образом. Тем не менее, мне было бы интересно, почему оба приложения должны специально запускаться на одном подчиненном узле ...

+0

Вы можете исправить группу приложений на предварительно выбранном узле с помощью этого подхода, но если я правильно ее понял, это не является желаемым поведением (которое должно применяться всеми приложениями на любом узле, но всегда вместе). Особенно с вашими ограничениями, если сбой slave-1 невозможен. – js84

+0

Я думаю, вы, вероятно, правы. Я просто хотел показать, что что-то подобное возможно, но с теми минусами, которые вы заявили. – Tobi

+0

Кроме того, мне непонятно, почему оба приложения должны запускаться на одном узле. Единственное, что я могу себе представить, это совместные ресурсы дискового хранилища (которые также могут быть решены с помощью постоянных томов) ... Это как-то против концепций Mesos IMHO. – Tobi