Linux LVS 高可用负载均衡部署

8次阅读

需配置ipvs模块、keepalived实现vip漂移、lvs转发规则、rs的arp抑制与回环绑定,并启动服务验证。具体包括启用ip_forward、加载ip_vs模块、安装keepalived、主备节点差异化配置vrrp、定义virtual_server调度策略、rs绑定vip至lo并调优arp参数、启服务后用ipvsadm和curl验证高可用性。

Linux LVS 高可用负载均衡部署

如果您需要在linux环境中构建高可用的LVS负载均衡系统,则需同时配置IPVS内核模块、Keepalived服务以及后端真实服务器的健康检查与会话同步机制。以下是完成该部署的具体步骤:

一、配置主备LVS节点的内核参数与IPVS模块

为确保LVS正常转发数据包,必须启用路由转发功能并加载IPVS相关内核模块。主备节点均需执行以下操作以提供基础转发能力。

1、编辑/etc/sysctl.conf文件,添加以下两行:

net.ipv4.ip_forward = 1

net.ipv4.vs.conntrack = 0

2、执行sysctl -p命令使配置立即生效。

3、运行modprobe ip_vs命令加载IPVS核心模块。

4、运行modprobe ip_vs_rr、modprobe ip_vs_wrr、modprobe ip_vs_sh命令加载调度算法模块。

5、执行lsmod | grep ip_vs验证所有模块已成功加载。

二、安装并配置Keepalived实现VIP漂移

Keepalived通过VRRP协议协调主备节点对虚拟IP(VIP)的控制权,避免单点故障。主节点优先级更高,故障时VIP自动迁移至备用节点。

1、在主备节点均执行yum install -y keepalived(centos)或apt install -y keepalived(ubuntu)。

2、备份原配置文件:cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak。

3、主节点配置中设置state MASTER、priority 100,并指定virtual_ipaddress段包含VIP及子网掩码。

4、备节点配置中设置state BACKUP、priority 90,其余virtual_ipaddress保持一致。

5、在vrrp_instance块内添加nopreempt选项(仅主节点需注释该行),确保主恢复后不强制抢占。

三、定义LVS转发规则并绑定Real Server

通过Keepalived的virtual_server段定义LVS集群服务,包括VIP端口、调度算法、健康检查方式及后端RS地址,使流量按策略分发。

1、在keepalived.conf的vrrp_instance下方新增virtual_server配置块,格式为virtual_server 192.168.1.100 80。

2、设置delay_loop 6指定健康检查间隔为6秒。

3、设置lb_algo rr指定轮询调度算法,lb_kind DR指定直接路由模式。

4、设置persistence_timeout 300启用连接保持时间,保障同一客户端请求持续由同一RS处理。

5、为每个Real Server添加real_server子块,包含其IP、权重及TCP检查参数(如connect_port 80、connect_timeout 3)。

四、配置Real Server的ARP抑制与回环接口

在DR模式下,Real Server必须响应VIP的ARP请求但不能对外宣告VIP,否则会导致网络冲突。需禁用VIP所在接口的ARP响应并绑定VIP到lo接口。

1、在每台Real Server上执行ip addr add 192.168.1.100/32 dev lo指令将VIP绑定至本地回环。

2、执行echo “1” > /proc/sys/net/ipv4/conf/lo/arp_ignore指令设置仅响应目标为本机lo接口的ARP请求。

3、执行echo “2” > /proc/sys/net/ipv4/conf/lo/arp_announce指令限制ARP通告仅使用匹配的源地址。

4、执行echo “1” > /proc/sys/net/ipv4/conf/all/arp_ignore和echo “2” > /proc/sys/net/ipv4/conf/all/arp_announce确保全局生效。

5、将上述命令写入/etc/rc.local或systemd服务,保证重启后持续生效。

五、启动服务并验证LVS转发状态

所有组件配置完成后,需依次启动Keepalived服务并确认VIP绑定、RS在线状态及实际流量分发效果,确保高可用链路完整建立。

1、在主节点执行systemctl start keepalived && systemctl enable keepalived。

2、在备节点执行相同命令启动服务,此时VIP应仅出现在主节点的ip addr输出中。

3、在主节点执行ipvsadm -Ln查看当前LVS规则,确认virtual server条目及activeconn数值非零。

4、在任意客户端向VIP发起curl http://192.168.1.100请求,观察返回内容是否来自不同RS。

5、手动停止主节点keepalived服务,等待约10秒后在备节点执行ip addr检查VIP是否已迁移,且ipvsadm -Ln仍显示有效规则。

text=ZqhQzanResources