第 2 章 keepalived 概述
keepalived 在活动 LVS 路由器以及一个或多个可选的 备份 LVS 路由器上运行。活跃的 LVS 路由器有两个角色:
- 在实际服务器之间平衡负载。
- 检查每个实际服务器上服务的完整性:
活动(主)路由器使用虚拟路由器冗余协议(VRRP)告知备份路由器其活动状态,该协议要求主路由器定期发出公告。如果活动路由器停止发送公告,则会选择新的主路由器。
注意
红帽不支持在配置更改要使用的 VRRP 版本时对 keepalived 进行滚动更新。所有路由器都必须在 keepalived 负载平衡器配置中运行相同的 VRRP 版本。VRRP 版本不匹配将导致以下信息:
Aug 3 17:07:19 hostname Keepalived_vrrp[123]: receive an invalid ip number count associated with VRID! Aug 3 17:07:19 hostname Keepalived_vrrp[123]: bogus VRRP packet received on em2 !!! Aug 3 17:07:19 hostname Keepalived_vrrp[123]: VRRP_Instance(vrrp_ipv6) ignoring received advertisment...
红帽建议所有系统都运行相同的 keepalived 版本,并且 keepalived 配置应尽可能一致,以避免兼容性问题。
2.1. 基本 Keepalived 负载平衡器配置
图 2.1 “基本负载平衡器配置” 显示由两个层组成的简单的 Keepalived 负载平衡器配置:第一层上有一个活动,多个备用 LVS 路由器。每个 LVS 路由器具有两个网络接口,一个位于互联网,一个在专用网络上,使它们能规范两个网络之间的流量。在本例中,活动路由器使用网络地址转换或 NAT 将流量从互联网定向到第二层上的可变实际服务器,后者又提供必要的服务。因此,本例中的实际服务器连接到专用专用网络段,并通过活动 LVS 路由器来回传递所有公共流量。对外部世界而言,服务器显示为一个实体。
图 2.1. 基本负载平衡器配置
[D]
到达 LVS 路由器的服务请求被寻址到虚拟 IP 地址或 VIP。这是站点管理员可公开路由的地址,与完全限定域名(如 www.example.com)相关联,并分配给一个或多个虚拟服务器。虚拟服务器是配置为侦听特定虚拟 IP 的服务。VIP 地址在故障转移期间从一个 LVS 路由器迁移到另一个 LVS 地址,从而保持在该 IP 地址上的存在性。VIP 也称为浮动 IP 地址。
VIP 地址可以分配到将 LVS 路由器连接到互联网的同一设备。例如,如果
eth0
连接到互联网,则可以将多个虚拟服务器分配给 eth0
。此外,每个虚拟服务器也可与每个服务单独的设备关联。例如,可以在位于 192.168.1.111 的 eth0
上处理 HTTP 流量,而 FTP 流量则可在 eth0
上处理,地址为 192.168.1.222。
在同时涉及一个主动路由器和一个被动路由器的部署场景中,活动路由器的角色是将服务请求从虚拟 IP 地址重定向到实际服务器。重定向基于 第 2.3 节 “keepalived 计划概述” 中进一步描述的 8 个支持的负载平衡算法之一。
活动路由器还通过三个内置健康检查动态监控实际服务器上特定服务的整体健康状况:简单 TCP 连接、HTTP 和 HTTPS。对于 TCP 连接,活动路由器将定期检查它可以连接到特定端口上的实际服务器。对于 HTTP 和 HTTPS,活动路由器将定期获取实际服务器上的 URL 并验证其内容。
备份路由器充当备用系统的角色。路由器故障转移由 VRRP 处理。启动时,所有路由器将加入多播组。此多播组用于发送和接收 VRRP 公告。由于 VRRP 是基于优先级的协议,因此选择优先级最高的路由器。路由器被选为主路由器后,它负责定期向多播组发送 VRRP 公告。
如果备份路由器在特定时间段内(基于广告间隔)无法接收公告,则会选择新的主路由器。新主将接管 VIP 并发送地址解析协议 (ARP )消息。当路由器返回到活动服务时,它可能成为备份或主设备。该行为由路由器的优先级决定。
图 2.1 “基本负载平衡器配置” 中使用简单、双层的配置最适合提供不经常更改的数据(如静态网页),因为单个实际服务器不会在每个节点间自动同步数据。