DR的HA其实是通过VRRP来实现的,在Linux上实现VRRP功能的程序叫做keepalived,keepalived能够根据配置文件中的定义自动生成ipvs规则,并能够对各RS的健康状态进行检测。keepalived也支持vrrp_script,keepalived利用vrrp_scripts完成辅助的其他高可用的功能,keepalived利用vrrp_track调用vrrp_script完成vrrp_script对服务的跟踪
安装keepalived程序
现在这样规划 10.0.1.11和12 是DR真实IP 10.0.1.13是VRRP虚IP
先设置主VRRP的运行参数
开启主DR的keepalived的服务
systemctl start keepalived.service
notification_email 通告给谁
notification_email_from 用哪个邮箱通告
smtp_server 指定邮件服务器
RID 这个参数两个DR需要一致
vrrp_garp_interval 免费ARP的通告间隔用于IPV4
vrrp_gna_interval 免费NA的通告间隔用于IPV6
再设置备DR的VRRP参数
为了让VRRP状态切换更直观一些,我们来做个邮件通知脚本
邮件脚本调用位置
测试效果
定义虚拟主机
delay_loop 定义服务轮询时间
lb_kind 定义部署模式
persistence_timeout 会话保持时间
lb_algo 负载均衡算法 调度算法
HTTP_GET是检测后端服务器是否正常
nb_get_retry 尝试次数
connect_timeout 每次尝试的超时时间
delay_before_retry 每次尝试的时间间隔
重新启动keepalived然后查看ipvsadm -Ln
ipvsadm会自己从keepalived的配置文件中读取相关信息并自动添加虚拟服务以及真实服务器信息
客户端测试
现在把DR1失效再测试
还是可以正常访问
再加个小功能 Sorry_server
当后端服务器都失效了,keepalived可以将用户请求发送到指定服务器,由临时服务器响应客户请求
用户端测试