配置keepalived实现haproxy高可用

架构

192.168.153.18  |  haproxy01,keepalived主
192.168.153.18  |  haproxy02,keepalived备

安装haproxy

两台机器都需要安装

yum install -y haproxy
haproxy -v

启动:

systemctl start haproxy
systemctl enable  haproxy
systemctl status   haproxy

安装keepalived

两台机器都需要安装

yum install keepalived -y

配置keepalived实现高可用

  1. 主配置文件:
cat /etc/keepalived/keepalived.conf
global_defs {
   router_id  haproxy01
}
vrrp_script chk_haproxy_proxy {
    script "/etc/keepalived/check_haproxy.sh"
    interval 2
    weight 2
}
vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.153.254
    }
    track_script {
        chk_haproxy_proxy
    }
}
  1. 备配置文件:
cat /etc/keepalived/keepalived.conf
global_defs {
   router_id haproxy02
}
vrrp_script chk_haproxy_proxy {
    script "/etc/keepalived/check_haproxy.sh"
    interval 2
    weight 2
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.153.254
    }
    track_script {
        chk_haproxy_proxy
    }
}
  1. 检察haproxy存活的脚本如下:
cat /etc/keepalived/check_haproxy.sh
#!/bin/bash

a=$(systemctl is-active haproxy)
if [  $a  != active ]
then
  systemctl stop keepalived
fi

chmod 755 /etc/keepalived/check_haproxy.sh
  1. 启动keepalived
systemctl start keepalived
systemctl enable  keepalived
systemctl status  keepalived

测试

正常情况下两台机器的haproxy与keepalived都正常启动,且vip在haproxy01上:
20250815105320
20250815105332
之后我们关闭haproxy01的haproxy服务

systemctl stop haproxy

观察到vip已经漂移到了haproxy02上:
20250815105359
此时故障转移测试成功。

posted @ 2025-08-15 10:55  阿峰博客站  阅读(31)  评论(0)    收藏  举报