haproxy动态下线需要用到socat工具
socat工具:
对服务器动态权重和其它状态可以利用 socat工具进行调整,Socat 是 Linux 下的一个多功能的网络工具,名字来由是Socket CAT,相当于netCAT的增强版.Socat 的主要特点就是在两个数据流之间建立双向通道,且支持众多协议和链接方式。如 IP、TCP、 UDP、IPv6、Socket文件等。
更改线上的服务器的权重为0,使haproxy不往该服务器调度,从而达到下线的效果
注:1、只支持动态算法下使用
2、每次只能修改一个单进程(sock文件)
#安装工具
apt install socat -y
动态下线
echo "set weight test/web2 0" | socat stdio /var/lib/haproxy/haproxy.sock
#test 后端集群名字
#web2 后端集群中一台服务器的别名
#0 更改权重为0
web2服务器已下线
echo "set weight test/web2 1" | socat stdio /var/lib/haproxy/haproxy.sock
#test 后端集群名字
#web2 后端集群中一台服务器的别名
#1 更改权重为1
web2服务器已上线