Haproxy+keepalived高可用集群,允许keepalived宕机,允许后端真实服务器宕机,但是不允许haproxy宕机,
所以下面就是解决方案
keepalived配置高可用检测脚本 ,master和backup都要添加
配置脚本
# vim /etc/keepalived/check_haproxy.sh
#!/bin/bash
echo "check haproxy"
HA= ` ps -C haproxy --no-header |wc -l `
if [ $HA -eq 0 ];then
#判断haproxy的进程是存储,0无haproxy进程,则haproxy宕机
systemctl stop keepalived
fi
并赋予它执行权限
[root@master ~]# chmod +x /etc/keepalived/check_haproxy.sh
修改主备keepalived配置(主备都要修改) master和backup
重启服务
[root@master ~]# systemctl restart haproxy.service
[root@backup ~]# systemctl restart haproxy.service
测试模拟haproxy宕机,测试是否可以高可用
master ~]# systemctl stop haproxy
master ~]# systemctl status keepalived
keepalived检测脚本,检测到haproxy宕机,直接将keepalived服务停止
查看vip是否漂移到备用节点
[root@backup keepalived]# ip a
for ((i=1;i<=10;i++));do curl 192.168.10.100;done
服务依然可用
测试haproxy的web_ui ,依然可用
启动主服务的haproxy和keepalived
systemctl start haproxy keepalived
systemctl status haproxy keepalived
vip节点又漂移回来了