Контейнер Docker с запуском кластера Mesos и запуском других контейнеров Docker в кластере (с использованием Marathon)

Я только начинаю с Mesos, Docker и Marathon, но нигде не могу найти ответ на этот конкретный вопрос. Я хочу настроить кластер Mesos, работающий на Docker — для этого есть несколько интернет-ресурсов, но затем я хочу запустить контейнеры Docker поверх самого Mesos. Тогда это будет означать, что контейнеры Docker работают внутри других контейнеров Docker.

Есть ли в этом проблема? Интуитивно это как-то не кажется правильным, но, похоже, было бы очень удобно сделать это. В идеале я хочу запустить кластер Mesos (с Marathon, Chronos и т. д.), а затем запустить Hadoop в контейнерах Docker. Возможно ли это или стандартный способ ведения дел? Любые другие предложения относительно того, что является хорошей практикой, будут оценены.

Спасибо


person radder5    schedule 15.02.2015    source источник


Ответы (2)


Вы сможете запустить его, позаботившись о некоторых проблемах при запуске контейнеров mesos (с Docker), таких как запуск в привилегированном режиме. Взгляните на jpetazzo/dind, чтобы узнать, как установить и запустить докер в докере. Затем вы можете настроить mesos в этом контейнере, чтобы иметь один контейнер с установленными mesos и docker.

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

person Javier Cortejoso    schedule 15.02.2015
comment
Самый отличный ответ спасибо. Я видел первую статью, на которую вы указываете, но не смог увидеть ее часть «докер в докере», но из остальной части статьи сделал вывод, что это возможно, просто хотел убедиться, что это «обычный» шаблон. - person radder5; 15.02.2015

Определенно есть люди, запускающие Mesos в контейнерах докеров, но вам нужно будет использовать привилегированный режим и настроить некоторые тома, если вы хотите, чтобы mesos имел доступ к внешнему бинарному файлу докера (см. эта тема).

Текущее самое большое предостережение: не называйте свои контейнеры mesos-slave «mesos-*» или MESOS- 2016 вас укусит. См. эпический MESOS-2115, чтобы узнать о других нерешенных проблемах, связанных с запуском mesos-slave в докере. контейнеры.

person Adam    schedule 16.02.2015
comment
Спасибо за совет! Альтернативой, о которой я думал, было использование Vagrant (github.com/everpeace/vagrant-mesos ), чтобы настроить среду Mesos, а затем использовать в ней контейнеры Docker и, возможно, Hadoop как платформу непосредственно в Mesos. Я действительно поражен количеством конкурирующих (разных) возможных настроек для этого материала. Mesos, Yarn, Ansible, Ambari — все делают похожие вещи. Мне в основном очень нравится способ ведения дел Docker, но я не совсем уверен, как смешать его с «большими данными» и способом «подготовки» (если это имеет какой-то смысл!) - person radder5; 17.02.2015
comment
Бродячая установка Everpeace хороша, но вас также может заинтересовать версия Mesosphere: github.com/mesosphere/playa -мезо - person Adam; 18.02.2015
comment
Чтобы узнать о Hadoop в качестве платформы Mesos, см. github.com/mesos/hadoop для MR1 (используется в рабочей среде на Airbnb) и github.com/mesos/myriad для YARN/MR2 (все еще находится на ранней стадии разработки). - person Adam; 18.02.2015
comment
спасибо @Adam за указатели. Просто пробую сейчас кластер Seqenceiq hadoop на docker, использующий Ambari, который также хорошо работает. Тем не менее, я все еще не понимаю, какой подход, наконец, выбрать, все они, похоже, делают похожие вещи. - person radder5; 18.02.2015