2015-06-22 5 views
1

Я изучал Mesos, рамки Marathon для развертывания приложений. У меня есть сомнения, что марафон обрабатывает файлы приложений, когда приложение убито.Как Mesos Marathon обрабатывает сохранение данных приложения?

Например, мы используем Jenkins, который запускается через Marathon, и если сервер Jenkins терпит неудачу, и он снова будет перезапущен Marathon, но на этот раз старые заданные задания будут потеряны.

Теперь мой вопрос заключается в том, как я могу гарантировать, что если приложение перезагрузится, эти старые задания должны быть доступны?

Спасибо.

ответ

2

На данный момент mesos/marathon отлично подходит для поддержки приложений без гражданства, но поддержка приложений с поддержкой состояния возрастает. По умолчанию данные задачи записываются в песочницу и, следовательно, будут потеряны при неудачной/перезапуске задачи. Обратите внимание, что обычно выполняется только небольшой процент задач (например, только задачи, находящиеся на неисправном узле).

Теперь давайте посмотрим на различные сценарии сбоев.

  1. Восстановление после сбоев процесса ведомых: Когда только процесс ведомого Mesos не удается (или модернизирован) рамки можно использовать slave checkpointing для повторного подключения к бегущим исполнителям.

  2. Неспособность исполнителя (например, сбои процесса Jenkins): В этом случае инфраструктура может сохранять свои собственные метаданные на некоторых постоянных носителях и использовать их для перезапуска. Обратите внимание, что это очень специфично для приложений, и поэтому mesos/marathon не может предложить общий способ сделать это (и я действительно не уверен, как это может выглядеть в случае дженкинсов). Стойкие данные могут быть записаны в HDFS, Cassandra или вы можете посмотреть на concept of dynamic reservations.