Последовательное обновление HAProxy

Я использую платформу инфраструктуры, состоящую из контейнеров докеров, работающих на хосте CentOS.

  • Масштабирование нескольких контейнеров с помощью docker compose.
  • Консул для обнаружения служб.
  • Регистратор для реестра служб
  • HAProxy как балансировщик нагрузки
  • Консул-шаблон для генерации конфигурации haproxy каждый раз при добавлении / удалении контейнера.

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

Кто-нибудь сталкивался с этой проблемой раньше или выполнял аналогичный рабочий процесс автомасштабирования через контейнеры.

1
задан 17 August 2016 в 01:47
1 ответ

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

Похоже, это хорошее использование команды HAProxy disable server .

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

3
ответ дан 3 December 2019 в 18:34

Теги

Похожие вопросы