Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

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

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

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