Действительно ли режим docker swarm (docker 1.13 и compose v3) обеспечивает непрерывное обновление или развертывание с нулевым временем простоя?

У меня есть стек с 10 контейнерами приложений с интерфейсом nginx. При развертывании новых образов контейнеров приложений в стеке я вижу ~ 1-2% неудачных запросов, если запускаю для них тест apachebenchmark или gatling. Около 2 запросов не выполняются, если я отправляю ~ 100 запросов в секунду во время развертывания.

При просмотре журналов кажется, что разница составляет всего ~ 1-2 мс для сбоя. Nginx отправляет запрос, и рой удаляет контейнер приложения, и nginx выдает ошибку 502.

Журнал ошибок (см. время отклика - 0,002) -

23 Mar 2017 11:07:35.047  192.168.50.68 - - [23/Mar/2017:05:37:34 +0000] "GET http://dev-hapdocker-01/feeds HTTP/1.1" 502 173 "-" "-" 0.002- Context

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

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


person vivekyad4v    schedule 04.04.2017    source источник


Ответы (1)


Мы делаем это с DotNet Core, но это требует большой работы с обеих сторон (giggity). Вам нужно убедиться, что ваш образ готов к запуску в момент его создания. В скомпилированном языке вы должны убедиться, что все операции сборки выполнены до создания экземпляра контейнера, IE на этапе сборки.

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

Если вы выполняете обновление службы докеров --image new/image:version --update-delay 10s,

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

person Dockstar    schedule 04.04.2017