带有HAProxy的Docker覆盖

时间:2018-12-05 16:55:52

标签: docker haproxy

我有一个QA环境,其中所有我的应用程序和HAProxy在同一覆盖网络上运行。 我希望HAProxy能够在服务器不必启动的情况下启动,因此我的服务器配置例如:

backend cirrus
    option      httpclose
    option      forwardfor
    balance     leastconn

    server cirrus01 cirrus-bos01:6021 check init-addr none

注意init-addr none,它使我可以禁用初始dns解析。 这种配置的问题是所有服务器都被标记为不正常,并且它们永远都不会变得健康,因此我总是得到NOSRV:

2018-12-05T16:50:42+00:00localhost haproxy[12]: 192.168.10.118:64813 
[05/Dec/2018:16:50:42.981] main cirrus/<NOSRV>
0/-1/-1/-1/0 503 212 - - SC-- 1/1/0/0/0 0/0
{cirrus.docker-app.qa01.company.com|} "GET / HTTP/1.1"

即使可以从容器本身获得URL cirrus-bos01

现在,如果我要从服务器定义中删除check init-addr none,则haproxy会因我尚未部署的服务而崩溃:

[ALERT] 338/165450 (1) : parsing [/usr/local/etc/haproxy/haproxy.cfg:347] : 'server renderer' : could not resolve address 'ytuploader'.
[ALERT] 338/165450 (1) : Failed to initialize server(s) addr.

因为确实还没有名为ytuploader的服务器。

是否为此使用了docker / haproxy解决方案?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案! 我从更改了服务器定义

server cirrus01 cirrus-bos01:6021 check init-addr none

收件人:

server cirrus01 cirrus-bos01:6021 check init-addr last,libc,none