Упрощенная версия моей текущей настройки выглядит следующим образом:
docker-compose
], который включает приложение Tomcat и БД. БД воссоздается каждую ночь из необработанных данных (запускается контейнер докеров, содержащий приложение для индексации).
Это достигается с помощью заданий crontab, которые запланированы так, чтобы В любой момент времени на обслуживании находится 1 виртуальная машина.
Теперь планируется масштабирование до нескольких дополнительных виртуальных машин и, возможно, нескольких реплик этого стека на каждую виртуальную машину. Я изучаю стеки docker swarm, чтобы упростить развертывание и управление.
Конкретный вопрос:
После того, как развертывание будет управляться через swarm, особенно если служба реплицируется в более чем 1 экземпляр на виртуальную машину, как я могу управлять ночным воссозданием БД, чтобы:
Думаю, я мог бы переформулировать вопрос следующим образом: как контролировать обслуживание на уровне обслуживания (по сравнению с уровнем узла)?
Я знаю, что узлы роя могут быть осушены независимо и помещены в Режим обслуживания. Проблема в том, что каждый узел может содержать несколько реплик службы, и каждая из этих реплик требует отдельного обслуживания.
Для службы Swarm нет режима обслуживания.
Вы еще не можете запускать задачи в службе Swarm и управлять включением / отключением для каждой из них из Routing Mesh и балансировщик нагрузки VIP.
Вы можете проявить творческий подход различными способами, чтобы контролировать, слушает ли БД порт и как он обновляет данные (возможно, сценарий точки входа), но для этого ответа потребуется гораздо больше информации о системных требованиях , поток данных, что нужно подключать для обновления БД по сравнению с доступом клиента, и если вы используете драйверы тома для данных БД и т. д. Так что это были бы другие вопросы и ответы :)