Разрешить docker-in-docker на dc/os?
Я пытаюсь запланировать задания Docker Run с использованием Airflow в DC/OS. Для этого требуется возможность запуска док-контейнеров из док-контейнера, который содержит Airflow. Я могу сделать это на OSX, но просто работает:
docker run \
-p 8080:8080 \
-v /var/run/docker.sock:/var/run/docker.sock {image name}
Есть ли для меня эквивалентный способ сделать это с помощью DC/OS?
2 ответа
Способ DC/OS будет планировать задания через Mesos Master. Это означает написание каркаса, который бы согласовывал распределение ресурсов (= "запуск задания Docker") с Мастером. Таким образом, запуск задания выполняется на любом узле кластера с доступными ресурсами для выполнения задачи. Такая структура является еще одной службой, которая отвечает за согласование ресурсов с мастером Mesos. Есть много примеров таких платформ:
Большинство из них построены на основе сервисной платформы dcos-commons.
Обходной путь должен был бы начать работу через другую существующую структуру, например, Марафон. Марафон предлагает REST API.
Похоже, у Airflow есть собственная реализация планировщика Apache Mesos, которая очень хороша и именно то, что вы ищете. Если вы используете DC/OS, вы можете установить несколько планировщиков Mesos, которые могут запускать задачи на Mesos независимо друг от друга, и в действительности нет необходимости в привилегированном режиме.
Вы можете найти документацию Airflow здесь: https://airflow.apache.org/configuration.html
В этом описанном сценарии Airflow Server
будет запущен через марафон (= раздел службы DC/OS), и это Airflow Server
зарегистрирует себя в качестве планировщика в Mesos, а затем он сможет запускать обычные задачи Mesos.