Когда docker swarm выполняет скользящее обновление с stop-first для нескольких запущенных экземпляров контейнера, он выполняет, среди прочего, следующие шаги по порядку для каждого контейнера в строке:
Удалите контейнер из его внутреннего балансировщика нагрузки.
Отправьте сигнал SIGTERM контейнеру.
Относительно льготного периода остановки отправьте сигнал SIGKILL.
Запустить новый контейнер
Добавьте новый контейнер в его внутренний балансировщик нагрузки.
Но в каком порядке нужно выполнить последовательное обновление с начало сначала?
Будут ли старый и новый контейнеры одновременно доступны через балансировщик нагрузки (пока старый не остановится и не будет удален из lb)?
Или новый контейнер будет сначала запущен и не будет добавлен в балансировщик нагрузки, пока старый контейнер не будет остановлен и удален из балансировщика нагрузки?
Последнее необходимо для процессов, привязанных к конкретному экземпляру службы (контейнеру).