Марафон не может запустить приложение, которое находится в контейнере Docker - PullRequest
1 голос
/ 28 апреля 2019

У меня три узла с установленным докером. В мастер-узле я без проблем запускаю Mesos и Marathon. Детали в следующем: Сначала я вхожу в докер с этой командой:

  docker run -v /home/user/.ssh:/root/.ssh --privileged -p 
   5050:5050 -p 5051:5051 -p 5052:5052 -p 2181:2181 -p 8082:8081 
   -p 6123:6123 -p 8080:8080 -p 50090:50090 -p 50070:50070 -p 
   9000:9000 -p 2888:2888 -p 3888:3888 -p 4041:4040 -p 7077:7077 
   -p 52222:22 -e WEAVE_CIDR=10.32.0.2/12 
   -e MESOS_EXECUTOR_REGISTRATION_TIMEOUT=5mins 
   -e LIBPROCESS_IP=10.32.0.2 
   -e MESOS_RESOURCES=ports*:[11000-11999] 
   -ti hadoop_marathon_mesos_flink_2 /bin/bash

Затем я запускаю эти команды для Zookeeper и Mesos:

 /home/zookeeper-3.4.14/bin/zkServer.sh restart

 /home/mesos-1.7.2/build/bin/mesos-master.sh --ip=10.32.0.1 
   --hostname=10.32.0.1 --roles=marathon,flink --quorum=1 
   --work_dir=/var/run/mesos --log_dir=/var/log/mesos

После запуска Mesos я открываю другой терминал для запуска Marathon:

  docker run exec -it container-id /bin/bash

Затем я запускаю марафон без проблем:

  /home/marathon-1.7.189-48bfd6000/bin/marathon 
  --master 10.32.0.1:5050 --zk zk://10.32.0.1:2181/marathon 
  --hostname 10.32.0.1 --webui_url 10.32.0.1:8080 
  --logging_level debug

Чтобы протестировать Marathon, я пишу простой сценарий для печати строки, и он отлично работает в контейнере Docker. Но когда я создаю новое приложение для запуска сценария, оно не запускается из-за этой ошибки:

I0428 05: 32: 09.167528 5115 exec.cpp: 162] Версия: 1.7.2

I0428 05: 32: 09.177440 5117 exec.cpp: 236] Исполнитель зарегистрирован на агенте 984595ae-e811-48fb-a9f5-ca6128e1cc1a-S0

I0428 05: 32: 09.179848 5120 executor.cpp: 188] Получено ПОДПИСАННОЕ событие

I0428 05: 32: 09.180785 5120 executor.cpp: 192] Подписчик исполнитель 10.32.0.3

I0428 05: 32: 09.180997 5120 executor.cpp: 188] Получено событие LAUNCH

I0428 05: 32: 09.182319 5120 executor.cpp: 697] Начальная задача test.f76ace45-6976-11e9-928f-ce235caa831e

I0428 05: 32: 09.196890 5120 executor.cpp: 712] Разветвленная команда на 5124 sh: 1: /home/test.sh: не найдено

I0428 05: 32: 09.369120 5119 executor.cpp: 1013] Команда вышла со статусом 127 (pid: 5124)

I0428 05: 32: 10.376525 5123 process.cpp: 927] Остановлен цикл приема сокета

Это означает, что Марафон не знает о Приложении, которое находится в контейнере Docker. Не могли бы вы указать мне, как решить эту проблему? Я также установил образ Docker в Marathon, но задача снова не удалась, а в интерфейсе Mesos нет логина SandBox .

Пожалуйста, помогите мне.

Заранее спасибо.

1 Ответ

0 голосов
/ 28 апреля 2019

Проблема решена. Я должен поместить приложение в Docker-контейнер в подчиненных узлах. Я сделал это, и приложение работает в марафоне.

...