当前位置: 首页 > 工具软件 > HAProxy-WI > 使用案例 >

容器里的HAProxy配置

东龙野
2023-12-01

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 的配置

 类似资料: