简介:本文深入解析LVS负载均衡与keepalived高可用原理,结合配置示例与实战建议,帮助读者掌握企业级集群部署核心技能。
LVS是基于Linux内核的四层负载均衡系统,通过IP负载均衡技术实现高性能流量分发。其核心组件包括:
LVS支持三种工作模式:
NAT模式(网络地址转换)
DR模式(直接路由)
TUN模式(IP隧道)
LVS提供10种调度算法,企业级场景常用:
keepalived通过VRRP协议实现主备切换,包含两大功能模块:
VRRP子系统:实现IP漂移与故障检测
Healthcheck子系统:监控服务可用性
健康检查阶段:
VRRP状态转换:
资源接管阶段:
Director Server配置:
# 启用ip_vs模块modprobe ip_vsmodprobe ip_vs_rr# 配置VIP(需禁用ARP响应)ifconfig eth0:0 192.168.1.100 netmask 255.255.255.255 broadcast 192.168.1.100 upecho "1" > /proc/sys/net/ipv4/conf/eth0/arp_ignoreecho "2" > /proc/sys/net/ipv4/conf/eth0/arp_announce# 添加LVS规则ipvsadm -A -t 192.168.1.100:80 -s wlcipvsadm -a -t 192.168.1.100:80 -r 192.168.1.101:80 -gipvsadm -a -t 192.168.1.100:80 -r 192.168.1.102:80 -g
Real Server配置:
# 配置lo:vip并抑制ARPifconfig lo:0 192.168.1.100 netmask 255.255.255.255 broadcast 192.168.1.100 upecho "1" > /proc/sys/net/ipv4/conf/lo/arp_ignoreecho "2" > /proc/sys/net/ipv4/conf/lo/arp_announceecho "1" > /proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" > /proc/sys/net/ipv4/conf/all/arp_announce
Master节点配置:
vrrp_script chk_httpd {script "/usr/local/bin/check_apache.sh"interval 2weight 2}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.100}track_script {chk_httpd}notify_master "/etc/keepalived/master.sh"notify_backup "/etc/keepalived/backup.sh"}
Backup节点配置:
vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 51priority 90advert_int 1# 其他配置与Master相同...}
连接复用优化:
net.ipv4.tcp_tw_reuse和net.ipv4.tcp_tw_recycle参数net.ipv4.tcp_max_syn_backlog内核参数调优:
# 增大ARP缓存echo 1024 > /proc/sys/net/ipv4/neigh/eth0/gc_thresh1echo 2048 > /proc/sys/net/ipv4/neigh/eth0/gc_thresh2echo 4096 > /proc/sys/net/ipv4/neigh/eth0/gc_thresh3# 优化TCP参数echo 30 > /proc/sys/net/ipv4/tcp_fin_timeoutecho 65536 > /proc/sys/net/core/somaxconn
Prometheus监控指标:
node_ipvs_connections:当前连接数node_ipvs_inbytes:入站流量node_ipvs_outbytes:出站流量自定义告警规则:
groups:- name: lvs-alertsrules:- alert: HighConnectionCountexpr: node_ipvs_connections > 10000for: 5mlabels:severity: criticalannotations:summary: "LVS连接数过高 ({{ $value }})"
现象:多个节点同时响应VIP的ARP请求
解决方案:
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" > /proc/sys/net/ipv4/conf/all/arp_announce
预防措施:
vrrp_garp_master_delay参数(建议10秒)vrrp_garp_master_refresh定期刷新ARPLVS与keepalived组合方案在企业级应用中展现出卓越的稳定性和扩展性。通过合理配置DR模式+VRRP高可用,可构建承载百万级QPS的负载均衡集群。未来发展方向包括:
建议运维团队建立完善的监控体系,定期进行故障演练,确保系统在极端情况下仍能提供稳定服务。