Запуск большого количества задач в кластере

Я ищу решение для запуска большого количества задач и мониторинга их состояния в кластере.

Подробно: каждая задача состоит из 3-4 процессов, которые содержатся в докере (каждый процесс — это команда запуска докера). Все процессы должны выполняться на одном сервере.

Количество задач, о которых мы говорим, — это пачки из нескольких сотен задач за раз.

Я рассмотрел несколько решений, основанных на Mesos:

  • Chronos — кажется, что он будет давать сбои при высокой нагрузке и в любом случае больше ориентирован на повторяющиеся (cron) задания. Пока мне нужна разовая (тяжелая) работа.
  • Пользовательский Mesos FW — кажется низкоуровневым для моих нужд, мне потребуется написать механизмы планирования и повторных попыток, я бы оставил это на крайний случай.
  • Aurora. Это кажется многообещающим, поскольку каждая задача выполняется на одном узле и состоит из нескольких процессов. Однако мне не хватает пары моментов: Aurora, похоже, не может выполнять несколько задач как часть одного задания. Поскольку все мои задачи похожи с разными входными данными, я мог бы использовать одно задание со многими (скажем, 400) экземплярами, и первый процесс каждой задачи (роль которого заключается в загрузке входных данных из S3) мог бы загрузить другой набор на основе идентификатора экземпляра. . Это подводит меня к другой проблеме: я не могу найти рабочий пример использования {{ mesos.instance }} в файлах .aurora. Может ли кто-нибудь привести мне пример?

Спасибо всем рыбакам


person Lior Regev    schedule 14.10.2015    source источник


Ответы (2)


Вы также можете взглянуть на Kubernetes (который также можно запустить как фреймворк в Mesos). Kubernetes использует концепцию Pods, которые в основном представляют собой набор - расположенные контейнеры. Таким образом, в вашем случае модуль будет состоять из ваших 3-4 процессов/контейнеров, а затем эти модули могут масштабироваться вверх/вниз.

Короткие комментарии относительно других решений, которые вы упомянули:

  • Chronos: на самом деле не нацелен на ваш вариант использования
  • Пользовательский FW: На самом деле не так уж и сложно, но лучше оставить это на крайний случай.
  • Aurora: очень мощный, но сложный фреймворк.
  • Marathon (о котором вы не упомянули): предназначен для долго работающих приложений, которые можно легко увеличивать и уменьшать. .
person js84    schedule 14.10.2015
comment
Во-первых, Спасибо Насчет Марафона, я так понимаю, это своего рода инит.д для Месоса. Я не ищу услугу, а скорее приложение. Так что не думал, что подойдет. - person Lior Regev; 14.10.2015
comment
Согласитесь, просто имейте в виду, что если вы всегда хотите запускать небольшое количество экземпляров, а затем взрываться при определенных событиях (например, увеличивать количество экземпляров), это также может быть интересно. - person js84; 15.10.2015

В дополнение к отличному другому ответу вы можете проверить Cook от Two Sigma, исходный код которого они только недавно открыли, но некоторое время использовали в производстве в масштабе.

person Michael Hausenblas    schedule 14.10.2015
comment
Хороший совет, лично я пока не проверял :-). Ограничение по совместному размещению, кажется, хорошо сопоставляется с модулями kubernetes, но не нашел, есть ли у повара подобные примитивы. - person js84; 15.10.2015