Мы запускаем кластер DC/OS и управляем им вручную прямо сейчас, поскольку экземпляры контейнера, работающие в нем, имеют низкие номера и не требуют большого вмешательства.DC/OS и параллельные развертывания
Теперь мы хотим выполнить развертывания от Jenkins - в то время как это работает с плагином Marathon, мы столкнулись с более или менее интересной проблемой: общими томами.
Все наши узлы имеют NetApp, установленный в/srv, и сервисы имеют тома контейнера Docker, которые сопоставляют определенные пути контейнера с подкаталогами в/srv. Теперь, когда задание Дженкинса вызывает повторное развертывание службы, оно оставит старый контейнер запущенным при постановке новой версии и переключении, как только новый контейнер достигнет «здорового» состояния.
Это проблема, потому что изображение, о котором идет речь, включает MongoDB и MySQL, которые прерываются, потому что есть параллельные обращения к файлам базы данных поддержки.
Как я могу масштабировать старый экземпляр до 0 и только тогда, когда старый экземпляр полностью остановлен, фактически развертывает новый экземпляр?
Настройка общих контейнеров MongoDB/MySQL в DC/OS - это то, что мне не очень нравится, так как это может вызвать разницу между контейнерами на машинах разработчиков, а также то, что содержимое базы данных, с которой загружаются контейнеры, включенной в изображение ...
Редактировать: эта проблема также регулярно укусит нас, когда кто-то случайно нажимает «перезапустить службу», потому что, в отличие от именования, он не выполняет shutdown-wait-redeploy, а также stage-then- переключение ...