在HAProxy后面滚动更新

我正在使用由在CentOS主机上运行的Docker容器组成的基础架构平台。

  • 通过docker工具来缩放多个容器
  • 领事服务发现。
  • 服务注册的注册人
  • HAProxy作为负载平衡
  • 用于每次添加/删除容器时生成haproxyconfiguration的Consul-template。

每次我们更新我们的构build,新的容器被生成,旧的容器被删除。 问题是容器被即时移除,而不考虑容器所服务的现有请求。 理想情况下,我应该有一个信号来标记在维护或排水模式的容器,以便现有的连接可以服务,然后优雅地从haproxy从物理上去除。

有没有人遇到过这个问题,或通过容器完成类似的自动缩放工作stream程。

根据我对你要求的内容的理解,你可以控制这个过程的所有步骤,并且希望在不中断与旧应用程序的客户端连接的情况下提出一个集成化应用程序的新版本,而不需要中断HAProxy,但是阻止了新的连接。

这似乎很好地使用了HAProxy禁用服务器命令 。

你应该能够禁用你弃用的服务器,把它们标记为在HAProxy中进行维护,这应该优雅地让客户完成他们的业务,然后你的consul / HAProxy魔术可以把新的服务器联机。