2015-07-31 1 views
8

У меня есть небольшой кластер Mesos, и я использую Marathon для управления набором длительных сервисов с переменным количеством экземпляров каждый.Миграция приложений для марафона для изящного отключения mesos-slave

Я хотел бы иметь возможность запускать новые узлы или прерывать некоторые из них в соответствии с потребностями бизнеса. Однако при завершении узла, который я понял, существует потенциальная проблема: когда я закрываю ведомое устройство Mesos, бывает, что количество экземпляров некоторых сервисов временно падает ниже определенных minimumHealthCapacity. Это может привести к некоторому простоям, если, например, остановленный компьютер запускает службу только с одним экземпляром.

Рассмотрим следующий упрощенный сценарий: узел 1 запускает службу A, узел 2 запускает службу B, а узел 3 выполняет службу C. minimumHealthCapacity для всех служб - это 1. Я хочу завершить работу узла 1 и оставить только 2 и 3 работает. Я не хочу, чтобы время простоя на службе А. Примером предполагаемого поведения было бы масштабирование службы А до 2, а затем безопасно завершающий узел 1.

Что можно сделать, чтобы убедиться, что сервис не опускается ниже minimumHealthCapacity?

В идеале, у меня был бы процесс обновления с обновленным обновлением для этого - замены запускаются на отдельных машинах, за которыми следует прекращение обслуживания в машине, которая должна быть отключена. Я хотел бы иметь как минимум автоматический процесс для этого, так что масштаб вниз - это простой скрипт. У меня нет требований к количеству времени, которое требуется для этого, т. Е. Я могу отключить ведомый Mesos только после того, как я уверен, что миграция марафона завершена и успешна.

ответ

1

В настоящее время команда Mesos dev работает над «Примитивами обслуживания», так что оператор может указать, что конкретная машина планируется спуститься в определенное время (или ASAP), вызывая сообщения в каждую структуру, уведомляя их о предполагаемых окно недоступности. Такая платформа, как Marathon, может затем решить перенести свои задачи с этого узла, чтобы можно было безопасно завершить работу без какого-либо простоя службы.

См. https://issues.apache.org/jira/browse/MESOS-1474 для получения более подробной информации/исправлений.

+0

В то же время, ваш лучший вариант - увеличить количество экземпляров ваших приложений на 1, дождаться, пока новый экземпляр станет здоровым, убейте узел, а затем уменьшите его на 1. – Adam

+0

. Спасибо. для ответа я сделаю это и последую за обновлениями на Джире! Любая идея о том, как долго это будет продолжаться до тех пор, пока эта функция не будет реализована? –

+0

Функция активно продолжается, но, вероятно, займет еще месяц или два, прежде чем все приземлится. Следите за этим билетом JIRA для получения дополнительной информации и, возможно, добровольцем по одной из подзадач, если хотите ускорить его. ;) – Adam