返回介绍

14.3 测试 HAProxy+Keepalived 高可用负载均衡集群

发布于 2025-04-21 21:33:26 字数 2879 浏览 0 评论 0 收藏

高可用的 HAProxy 负载均衡系统能够实现 HAProxy 的高可用性、负载均衡特性和故障自动切换特性。由于本章介绍的高可用构架只涉及高可用性和负载均衡两个特性,因此,对其进行的测试仅针对这两个方面进行。下面进行简单的测试。

14.3.1 测试 Keepalived 的高可用功能

高可用性是通过 HAProxy 的两个 HAProxy Server 完成的。为了模拟故障,先将主 haproxy-server 上面的 HAProxy 服务停止,接着观察 haproxy-server 上 Keepalived 的运行日志,信息如下:

Apr  4 20:57:51 haproxy-server Keepalived_vrrp[23824]: VRRP_Script(check_haproxy) failed
Apr  4 20:57:54 haproxy-server Keepalived_vrrp[23824]: VRRP_Instance(HA_1)
Received higher prio advert
Apr  4 20:57:54 haproxy-server Keepalived_vrrp[23824]: VRRP_Instance(HA_1) 
Entering BACKUP STATE
Apr  4 20:57:54 haproxy-server Keepalived_vrrp[23824]: VRRP_Instance(HA_1)
removing protocol VIPs.
Apr  4 20:57:54 haproxy-server Keepalived_healthcheckers[23823]: Netlink reflector
reports IP 192.168.66.10 removed

这段日志显示了 check_haproxy 检测失败后,haproxy-server 自动进入了 BACKUP 状态,同时释放了虚拟 IP。由于执行了角色切换,此时 mail_notify.py 脚本应该会自动执行并发送状态切换邮件,类似的邮件信息如图 14-4 所示。

图 14-4 Keepalived 状态切换时的报警邮件

然后观察备机 backup-haproxy 上 Keepalived 的运行日志,信息如下:

Apr  4 20:57:54 backup-haproxy Keepalived_vrrp[17261]: VRRP_Instance(HA_1) forcing
a new MASTER election
Apr  4 20:57:54 backup-haproxy Keepalived_vrrp[17261]: VRRP_Instance(HA_1) forcing
a new MASTER election
Apr  4 20:57:56 backup-haproxy Keepalived_vrrp[17261]: VRRP_Instance(HA_1)
Transition to MASTER STATE
Apr  4 20:57:58 backup-haproxy Keepalived_vrrp[17261]: VRRP_Instance(HA_1)
Entering MASTER STATE
Apr  4 20:57:58 backup-haproxy Keepalived_vrrp[17261]: VRRP_Instance(HA_1) setting
protocol VIPs.
Apr  4 20:57:58 backup-haproxy Keepalived_healthcheckers[17260]: Netlink reflector
reports IP 192.168.66.10 added
Apr  4 20:57:58 backup-haproxy avahi-daemon[1207]: Registering new address record 
for 192.168.66.10 on eth0.IPv4.
Apr  4 20:57:58 backup-haproxy Keepalived_vrrp[17261]: VRRP_Instance(HA_1) Sending
gratuitous ARPs on eth0 for 192.168.66.10
Apr  4 20:58:03 backup-haproxy Keepalived_vrrp[17261]: VRRP_Instance(HA_1) Sending
gratuitous ARPs on eth0 for 192.168.66.10

从日志中可以看出,主机出现故障后,backup-haproxy 立刻检测到,此时 backup-haproxy 变为 Master 角色,并且接管了主机的虚拟 IP 资源,最后将虚拟 IP 绑定在 eth0 设备上。

接着,重新启动主 haproxy-server 上的 Keepalived 服务,然后观察 haproxy-server 上的日志状态:

Apr  4 21:00:09 localhost haproxy[574]: Proxy www started.
Apr  4 21:00:11 haproxy-server Keepalived_vrrp[23824]: VRRP_Script(check_haproxy) succeeded

从日志输出可知,在 HAProxy 服务启动后,Keepalived 监控程序 vrrp_script 检测到 HAProxy 已经正常运行,但是并没有执行切换操作,这是由于在 Keepalived 集群中设置了不抢占模式的缘故。

14.3.2 测试负载均衡功能

将 www.zb.com、static.zb.com、video.zb.com 这三个域名解析到 192.168.66.10 这个虚拟 IP 上,然后依次访问网站,如果 HAProxy 运行正常,并且 ACL 规则设置正确,这三个网站应该都能正常访问,如果出现错误,可通过查看 HAProxy 的运行日志判断哪里出了问题。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。