Mesos - как мне сохранить задачу executor работающей, когда планировщик отключается
Я пытаюсь реализовать инфраструктуру Mesos, в которой есть планировщик с настраиваемой логикой планирования и долго выполняющимися задачами.
Иногда планировщик необходимо перезапустить из-за развертывания кода.
Я заметил, что всякий раз, когда планировщик отключается, все запущенные исполнители останавливаются.
I0202 14:12:48.099814 8539 exec.cpp:383] Executor asked to shutdown
Мои цели:
Я хотел бы, чтобы исполнитель продолжал работать во время перезапуска планировщика.
Я хочу, чтобы планировщик обнаруживал активные задачи, когда он снова запускается.
Могу ли я достичь этого с помощью мезо?
1 ответ
Да, вы можете для обеих целей:
Существует конфигурация для каждого фреймворка, называемая таймаутом отработки отказа, который означает "сколько времени ждать, пока не будут убиты исполнители, если планировщик отключается", и по умолчанию равен 0 (например, немедленно уничтожить, если отключится планировщик). Чтобы изменить это, вы указываете время ожидания отработки отказа для вашей платформы через
FrameworkInfo
во время регистрации (например, Mesos Kafka Scheduler)Месос имеет механизм под названием Примирение, чтобы иметь дело с такими случаями. Короче говоря, когда ваш планировщик по какой-то причине дает сбой, вам нужно перезапустить его, используя тот же идентификатор платформы (явно говоря, что вам придется где-то хранить идентификатор инфраструктуры и восстановить его после сбоев) и выполнить согласование.
Во время сверки Mesos отправит вам обновления статуса для всех известных задач, чтобы обновить состояние вашего планировщика. Представьте себе ситуацию, когда у вас есть фреймворк с 5 запущенными задачами, а затем ваш планировщик умер. Перед перезапуском планировщика 2 задачи тоже умерли. Затем, после того, как вы зарегистрируете свой планировщик и выполните согласование, Mesos должен отправить вам обновления статуса для 5 задач - 3 из них будут
TASK_RUNNING
и 2TASK_LOST
для мертвых задач. Таким образом, вы сможете синхронизировать с Mesos и восстановить контроль над активными задачами.