Supervisord haproxy重装不起作用

时间:2014-08-18 18:31:19

标签: bash docker haproxy supervisord

我正在使用Supervisor管理的进程在Docker容器中部署我的应用程序。当我的Zookeeper中的服务器列表发生变化时,我正在重新加载的容器中运行Haproxy(通过sudo haproxy reload)。问题是Supervisor立即使用旧配置重新启动进程,因此不会使更改生效。

1)我已经尝试过supervisorctl重读,但我正在尝试重新加载(而不是必须重新启动)以避免停​​机。

2)我还考虑过使用数据包重定向重新启动Haproxy,但目前Docker中的Iptables使用存在局限性(根据https://github.com/docker/docker/issues/4424#https://github.com/docker/docker/issues/4556

任何建议都将受到高度赞赏!

1 个答案:

答案 0 :(得分:1)

这已通过以下命令序列解决:

iptables -I INPUT -p tcp --dport 3213 --syn -j DROP
sleep 1
supervisorctl -u login -p pass restart haproxy:*
iptables -D INPUT -p tcp --dport 3213 --syn -j DROP

1.我们临时删除syn,以便客户端重新发送它直到它到达新进程。

http://www.mail-archive.com/haproxy@formilux.org/msg06885.html

(Docker现在支持内部iptables)

2.我们通过supervisorctl

优雅地重启进程组