Linux高可用集群是企业生产环境的基础设施标配。Keepalived负责VIP(虚拟IP)漂移,HAProxy负责流量分发,两者配合可以在单台Web服务器宕机时做到秒级切换,实现故障自动转移。本文用两台CentOS 7主机演示完整搭建过程。
高可用集群架构设计与VIP漂移原理
集群由两台节点(node1: 192.168.1.10,node2: 192.168.1.11)和一个对外VIP(192.168.1.100)组成。Keepalived通过VRRP协议在节点间互发通告报文,优先级高的节点成为MASTER持有VIP,优先级低的节点进入BACKUP状态待命。MASTER故障后BACKUP在秒级抢占VIP,对外服务不中断。
Keepalived部署:VRRP实例配置要点
安装Keepalived后修改/etc/keepalived/keepalived.conf:
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 8tech#2026
}
virtual_ipaddress {
192.168.1.100/24 dev eth0
}
track_script {
chk_haproxy
}
}
node2把state改为BACKUP、priority改为90,其余保持一致。track_script挂脚本检查haproxy进程存活,进程不在时VIP也跟随漂移,避免有VIP无服务的状态。
HAProxy反向代理配置:健康检查与调度算法
HAProxy负责把请求转发到后端的Web服务器组,配置/etc/haproxy/haproxy.cfg:
global
daemon
maxconn 4096
defaults
mode http
timeout connect 5s
timeout client 50s
timeout server 50s
frontend web_front
bind *:80
default_backend web_back
backend web_back
balance roundrobin
option httpchk GET /health
server web1 192.168.1.20:8080 check inter 3s fall 3 rise 2
server web2 192.168.1.21:8080 check inter 3s fall 3 rise 2
balance roundrobin按权重轮询,httpchk开启HTTP健康检查,fall 3表示连续三次失败才摘除节点,rise 2表示恢复两次后重新加入。
故障切换验证与监控要点
验证步骤:访问http://192.168.1.100,依次关闭node1的haproxy进程和整台机器,观察VIP是否在node2上出现(ip addr show eth0)。切换耗时约2-3秒,取决于检查脚本周期。
排查要点:tcpdump抓vrrp组播报文判断心跳是否正常;检查防火墙是否放行VRRP协议;确认track_script脚本有执行权限。Keepalived日志默认写入/var/log/messages,VIP抢占失败优先看这里。
集群性能验证与稳定性评估
用ab或wrk压测VIP地址,确认轮询算法生效、后端请求分布均匀,单个节点故障时请求自动落到健康节点。稳定运行一周后再接入更多节点,先小流量灰度再逐步放量。
原创文章,作者:小编,如若转载,请注明出处:https://www.yunthe.com/linux-gao-ke-yong-ji-qun-shi-zhan-keepalived-yu-haproxy-da/