1,进入HA的容器docker exec -it 9dbbf15a37c6 /bin/bash
2,找到HA的配置cat /usr/local/etc/haproxy/haproxy.cfg
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 4096
#chroot /usr/share/haproxy
#user haproxy
#group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
timeout connect 5000
timeout client 50000
timeout server 50000
frontend stats-front
bind *:8081
mode http
default_backend stats-back
frontend fe_k8s_6444
bind *:6444
mode tcp
timeout client 1h
log global
option tcplog
default_backend be_k8s_6443
acl is_websocket hdr(Upgrade) -i WebSocket
acl is_websocket hdr_beg(Host) -i ws
backend stats-back
mode http
balance roundrobin
stats uri /haproxy/stats
stats auth pxcstats:secret #这是登陆ha监控页面的账号密码
backend be_k8s_6443
mode tcp
timeout queue 1h
timeout server 1h
timeout connect 1h
log global
balance roundrobin
server rancher01 192.168.134.162:6443
server rancher02 192.168.134.163:6443
server rancher03 192.168.134.164:6443
3,HA的容器启动脚本中要设置监听的端口
编辑start-haproxy.sh文件,修改Kubernetes Master节点IP地址为实际Kubernetes集群所使用的值(Master Port默认为6443不用修改):
mkdir -p /data/lb
cat > /data/lb/start-haproxy.sh << "EOF"
#!/bin/bash
MasterIP1=192.168.134.162
MasterIP2=192.168.134.163
MasterIP3=192.168.134.164
MasterPort=6443
docker run -d --restart=always --name -p 6444:6444 -p 8081:8081\
-e MasterIP1=$MasterIP1 \
-e MasterIP2=$MasterIP2 \
-e MasterIP3=$MasterIP3 \
-e MasterPort=$MasterPort \
wise2c/haproxy-k8s
EOF
设置两个监听端口,以便用户可以使用这个端口访问后端的ha转发的链接。
4,监控的链接
http://192.168.134.161:8081/haproxy/stats
5,自己手动配置ha的转发链接和配置(通过docker的挂载来实现手动配置)。
mkdir /root/haproxy
touch haproxy.cfg
docker run -d --restart=always --name HAProxy-K8S -p 80:80 -p 443:443 -p 6443:6443 -p 8181:8181 -v /root/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg haproxy:2.0-alpine
我的本地配置(把ha配置挂载到本地)
docker run -d --restart=always --name HAProxy-K8S -p 80:80 -p 443:443 -p 6444:6444 -p 8081:8081 -v /root/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg wise2c/haproxy-k8s
把ha的配置挂载出来,方便修改
老版本Ha的启动
cat > /data/lb/start-haproxy.sh << "EOF"
#!/bin/bash
MasterIP1=192.168.134.162
MasterIP2=192.168.134.163
MasterIP3=192.168.134.164
MasterPort=6443
docker run -d --restart=always --name HAProxy-K8S -p 6444:6444 -p 8081:8081 \
-e MasterIP1=$MasterIP1 \
-e MasterIP2=$MasterIP2 \
-e MasterIP3=$MasterIP3 \
-e MasterPort=$MasterPort \
wise2c/haproxy-k8s
EOF
新版本Ha的启动
cat > /data/lb/start-haproxy.sh << "EOF"
#!/bin/bash
MasterIP1=192.168.134.162
MasterIP2=192.168.134.163
MasterIP3=192.168.134.164
MasterPort=6443
docker run -d --restart=always --name HAProxy-K8S -p 6444:6444 -p 8081:8081 -p 443:443 \
-p 80:80\
-v /root/haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg\
-e MasterIP1=$MasterIP1 \
-e MasterIP2=$MasterIP2 \
-e MasterIP3=$MasterIP3 \
-e MasterPort=$MasterPort \
wise2c/haproxy-k8s
EOF
sh /data/lb/start-haproxy.sh 启动命令
docker logs 51b9816bd4c0 查看docker启动日志的命令
本地HA 的配置