2015-07-10 3 views
2

Я пытаюсь (потенциально глупо) задачу Dockerizing Zookeeper/Marathon/Mesos и развертывания контейнеров Docker от клана Dockerized Mesos.Развертывание приложения Docker зависает на марафоне, сбой на Mesos

До сих пор, у меня есть рабочий Mesos кластер на двух физически отдельных узлов: один узел работает одновременно Mesos master и через slave (контейнер) Dockerfiles связаны, а второй узел работает только ведомый. Кажется, они функционируют нормально; Я могу представить очень простые задания через Marathon (также собственный контейнер, работающий на узле с мастером и подчиненным), и они успешно завершаются.

Однако, когда я пытаюсь сделать submit Docker containers through the Marathon API, это кажется, чтобы повесить. Интерфейс Marathon висит на «Развертывание» и никогда не меняется, даже после того, как он сидит в течение 15 минут, останавливаясь, повторно отправляя и позволяя ему сидеть еще 15 минут.

Marathon UI, depicting seemingly frozen deployment of Docker task

В то же время, задачи, тем не менее, представляется рабам Mesos; пользовательский интерфейс Mesos сообщает о неудачных задачах слева и справа.

Mesos UI, depicting failed tasks

РЕДАКТИРОВАТЬ 1

Полученные журналы песочница для каждого из исполнителей также совершенно пустой.

empty sandbox

EDIT 2

нашел что-то интересное утопает в ведомых журналах:

slave logs

Линия интереса:

Ни один из включенных контейнеров (мезо) не может создать контейнер для предоставленного сообщения TaskInfo/ExecutorInfo.

Похоже, что контейнерный контейнер не работает, и из того, что я вижу, он даже не рассматривает докер в качестве контейнера. Я выполнил конфигурацию here для развертывания заданий Docker; это изменится, если рабы Мезоса сами являются контейнерами Докера?

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

+0

Чтобы помочь вам справиться с проблемой, журналы задач необходимы. Вы можете получить их из WebUI, щелкнув ссылку на песочницу. – rukletsov

+1

К сожалению, песочница ссылается на сообщение «Нет файлов» в любом из соответствующих каталогов. – Magsol

ответ

4

Ваша команда docker run для рабыни? Вот несколько параметров, другие считают полезными:

--net host \ 
--pid host \ 
--privileged \ 
--env MESOS_CONTAINERIZERS=docker,mesos \ 
--env MESOS_EXECUTOR_REGISTRATION_TIMEOUT=5mins \ 
-v /var/run/docker.sock:/var/run/docker.sock \ 
-v /sys:/sys:ro \ 
-v /usr/bin/docker:/usr/bin/docker:ro \ 
-v /lib64/libdevmapper.so.1.02:/lib/libdevmapper.so.1.02:ro \ 
-v /home/core/.dockercfg:/root/.dockercfg:ro \ 

Также обратите внимание, что вы не должны назвать контейнер mesos-slave как подчиненный будет пытаться удалить любые контейнеры с префиксом mesos- при восстановлении.

FYI, Mesos использует команду docker --version, чтобы увидеть, можно ли использовать контейнер-докер. Попробуйте запустить задачу Marathon, которая просто запускает docker --version, чтобы узнать, будет ли это работать в среде вашего докционированного подчиненного устройства.

+1

Я обнаружил, что в обширной области поиска есть две ключевые строки конфигурации (которые входят в число тех, которые вы отправили): '-v/sys:/sys' и' -v /var/run/docker.sock:/var/run/docker.sock'. В том числе эти две линии сделали все отлично. Я рад, что он работает, но если у вас есть какая-либо информация о том, что делают эти параметры (например, почему они исправили эту проблему), я бы хотел это услышать! – Magsol

+0

Для справки, это вызов 'run', который я сейчас использую: https://github.com/magsol/littlejohn/blob/master/dockerfiles/lj-mesos-slave/start.sh – Magsol

+0

@Magsol Я могу ' t, похоже, выяснить, где вы входите в эту конфигурацию? Вы также используете ведущий Mesos и подчиненные узлы внутри докера? –

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