Контролировать периодическое обслуживание сервисов в рое докеров

Упрощенная версия моей текущей настройки выглядит следующим образом:

  • 3 виртуальные машины: VM1, VM2, VM3
  • Каждая из них запускает docker-compose ], который включает приложение Tomcat и БД.

БД воссоздается каждую ночь из необработанных данных (запускается контейнер докеров, содержащий приложение для индексации).

Это достигается с помощью заданий crontab, которые запланированы так, чтобы В любой момент времени на обслуживании находится 1 виртуальная машина.

Теперь планируется масштабирование до нескольких дополнительных виртуальных машин и, возможно, нескольких реплик этого стека на каждую виртуальную машину. Я изучаю стеки docker swarm, чтобы упростить развертывание и управление.

Конкретный вопрос:

После того, как развертывание будет управляться через swarm, особенно если служба реплицируется в более чем 1 экземпляр на виртуальную машину, как я могу управлять ночным воссозданием БД, чтобы:

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

Думаю, я мог бы переформулировать вопрос следующим образом: как контролировать обслуживание на уровне обслуживания (по сравнению с уровнем узла)?

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

0
задан 8 December 2017 в 23:10
1 ответ

Для службы Swarm нет режима обслуживания.

Вы еще не можете запускать задачи в службе Swarm и управлять включением / отключением для каждой из них из Routing Mesh и балансировщик нагрузки VIP.

Вы можете проявить творческий подход различными способами, чтобы контролировать, слушает ли БД порт и как он обновляет данные (возможно, сценарий точки входа), но для этого ответа потребуется гораздо больше информации о системных требованиях , поток данных, что нужно подключать для обновления БД по сравнению с доступом клиента, и если вы используете драйверы тома для данных БД и т. д. Так что это были бы другие вопросы и ответы :)

0
ответ дан 5 December 2019 в 07:02