docker 容器中的 Haproxy 不稳定

Haproxy in docker container unstable

嗨,我在 docker 容器中遇到 haproxy 问题。每次我为 HA 构建 docker 容器时,它都能正常工作,但一段时间后它会停止工作,并给出以下错误。

错误:-

.<html><body><h1>503 Service Unavailable</h1>
No server is available to handle this request.
</body></html>

我的 docker 文件:-

FROM centos
ENV container docker
RUN yum -y update
RUN yum install -y passwd
RUN echo root | passwd --stdin root
RUN yum -y swap -- remove fakesystemd -- install systemd systemd-libs
RUN yum install -y net-tools
RUN yum install -y lsof
EXPOSE 80
VOLUME [ "/sys/fs/cgroup" ]
CMD ["/usr/sbin/init"]

我的 haproxy 文件:-

global

log         127.0.0.1 local2
chroot      /var/lib/haproxy
pidfile     /var/run/haproxy.pid
maxconn     4000
user        haproxy
group       haproxy
daemon

stats socket /var/lib/haproxy/stats

defaults
mode                    http
log                     global
option                  httplog
option                  dontlognull
option http-server-close
option forwardfor       except 127.0.0.0/8
option                  redispatch
retries                 3
timeout http-request    10s
timeout queue           1m
timeout connect         10s
timeout client          1m
timeout server          1m
timeout http-keep-alive 10s
timeout check           10s
maxconn                 3000


frontend  main *:80
default_backend             app


backend app
balance roundrobin
server  www1 172.17.0.3:80 check
server  www2 172.17.0.4:80 check

Docker 运行 :-

docker run --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup:ro sb/ha

我有两个 appache 服务器,都在 docker 中,ip 分别为 172.17.0.3 和 172.17.0.4。不知道为什么不稳定,请帮我看看,建议一下..

提前致谢。

Docker 不对您容器的 IP 提供任何保证。如果由于任何原因您的容器崩溃或重新启动,它们的 IP 将发生变化,因此您的 HAProxy 配置将变得过时并需要更新。

你可以看一下动态查找容器地址的 tutum 的 haproxy 镜像:https://github.com/tutumcloud/haproxy