第 1 章 Load Balancer 概述
负载平衡器是一组集成软件组件,用于跨一组实际服务器平衡 IP 流量。它由两种主要技术组成,可用于监控群集成员和群集服务:Keepalived 和 HAProxy。keepalived 使用 Linux 虚拟服务器 (LVS)在主动和被动路由器上执行负载平衡和故障转移任务,而 HAProxy 为 TCP 和 HTTP 应用程序执行负载平衡和高可用性服务。
1.1. keepalived
keepalived 守护进程在主动和被动 LVS 路由器上运行。所有运行 keepalived 的路由器都使用 虚拟冗余路由协议 (VRRP)。活动路由器定期发送 VRRP 公告;如果备份路由器无法接收这些公告,则会选择一个新的活跃路由器。
在活跃的路由器上,keepalived 还可以为实际服务器执行负载平衡任务。
keepalived 是与 LVS 路由器相关的控制流程。在引导时,守护进程由 systemctl 命令启动,该命令读取配置文件
/etc/keepalived/keepalived.conf
。在活跃的路由器上,keepalived 守护进程启动 LVS 服务,并根据配置的拓扑监控服务的健康状况。使用 VRRP 时,活动路由器会将定期公告发送到备份路由器。在备份路由器上,VRRP 实例决定了活动路由器的运行状态。如果活跃路由器在用户可配置间隔后无法公告,Keepalived 会启动故障转移。在故障转移期间,会清除虚拟服务器。新活动路由器控制虚拟 IP 地址 (VIP)、发送 ARP 消息、设置 IPVS 表条目(虚拟服务器),启动健康检查,然后开始发送 VRRP 公告。
keepalived 在第 4 层或传输层执行故障转移,TCP 在其上执行基于连接的数据传输。当实际的服务器无法回复简单超时 TCP 连接时,keepalived 检测到服务器已失败,并从服务器池中删除它。