如何根据目标IP获取haproxy代理TCP

时间:2017-01-31 23:22:45

标签: docker haproxy

我正致力于在一组IP地址上获取一组docker服务,并使其能够适应故障。我已经设置了keepalived以管理节点上的IP地址集,现在我正在尝试使用haproxy将TCP连接重定向到与docker服务的连接。我为每个外部可见的IP地址提供了一个docker服务。

这是我的haproxy.cfg:

global
    log 10.100.10.40:514 daemon

resolvers dns
    nameserver swarm 127.0.0.11:53
    hold valid 5s

listen test
    bind *:16000
    mode tcp
    log global
    option tcplog
    option logasap
    option log-health-checks
    timeout client 30s
    timeout server 30s
    timeout connect 5s
    balance leastconn
    default-server init-addr none

    acl IOS0 dst 10.94.10.210
    acl IOS1 dst 10.94.10.211
    acl IOS2 dst 10.94.10.212
    acl IOS3 dst 10.94.10.213

    use-server ios0 if IOS0 !IOS1 !IOS2 !IOS3
    use-server ios1 if IOS1 !IOS0 !IOS2 !IOS3
    use-server ios2 if IOS2 !IOS0 !IOS1 !IOS3
    use-server ios3 if IOS3 !IOS0 !IOS1 !IOS2

    server ios0 ios0-br:8000 resolvers dns check inter 5000
    server ios1 ios1-br:8000 resolvers dns check inter 5000
    server ios2 ios2-br:8000 resolvers dns check inter 5000
    server ios3 ios3-br:8000 resolvers dns check inter 5000

为了测试这个,我开始只运行一个(4种可能的)docker服务。我想要发生的是,到IP1的TCP连接成功,而到IP2,IP3,IP4的连接都失败了(直到相应的docker服务出现)。

我所看到的是,所有4个IP地址的所有连接都成功并被定向到正在运行的服务。

我必须做些什么来实现我的目标?

0 个答案:

没有答案