默认自己已经会用 Docker
并且已经使用了国内源。
HaProxy
是一个免费的,开源的高可用性/服务器解决方案,通过跨多个服务器分发请求,为 TCP
和基于 http
的应用程序提供负载平衡和代理。它是用 c 语言编写的,以快速和高效(在处理器和内存使用方面)著称。
HaProxy
一、镜像安装
查找镜像
获取镜像
二、使用镜像
创建一个Dockerfile
haproxy.cfg
是本地的配置文件,后面 /usr/local/etc/haproxy/haproxy.cfg
是目标位置,在运行容器时,使用当前配置
1 2
| FROM haproxy:latest COPY haproxy.cfg /usr/local/etc/haproxy/haproxy.cfg
|
创建容器
1
| docker build -t custom-haproxy .
|
测试配置文件
1
| docker run -it --rm --name haproxy-syntax-check custom-haproxy haproxy -c -f /usr/local/etc/haproxy/haproxy.cfg
|
成功后会返回
1
| Configuration file is valid
|
运行容器
1
| docker run -d --name my-haproxy --sysctl net.ipv4.ip_unprivileged_port_start=0 custom-haproxy
|
进入容器使用文件
1 2 3 4
| docker exec -it haproxy-syntax-check /bin/bash
haproxy -f /usr/local/etc/haproxy/haproxy.cfg
|
通过绑定挂载
1
| docker run -d --name my-running-haproxy -v D:\develop\docker\haproxy:/usr/local/etc/haproxy:ro --sysctl net.ipv4.ip_unprivileged_port_start=0 haproxy:latest
|
重新加载配置命令
1
| docker kill -s HUP my-haproxy
|
Keepalived
keepalived
需要在服务器内部创建,首先进入容器安装 keepalived
一、安装
1
| docker exec -it my-haproxy /bin/bash
|
附
haproxy.cfg
配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| global log 127.0.0.1 local0 info chroot /usr/local/haproxy user haproxy group haproxy uid 99 gid 99 daemon maxconn 4096
defaults log global mode tcp option tcplog option dontlognull retries 3 maxconn 2000 timeout connect 5s timeout client 120s timeout server 120s
listen rabbitmq_cluster bind 0.0.0.0:5671 mode tcp balance roundrobin server rmq_node1 10.110.8.34:5672 check inter 5000 rise 2 fall 3 weight 1 server rmq_node2 10.110.8.38:5672 check inter 5000 rise 2 fall 3 weight 1
listen monitor bind 0.0.0.0:8100 mode http option httplog stats enable stats uri /stats stats refresh 5s
|
本文地址: https://github.com/maxzhao-it/blog/post/39007/