Keepalived+Nginx实现高可用(HA)(2)

如果看到如上进程信息,表示keepalived已经启动成功。下面用ip add命令查看vip绑定的情况,如下图所示:

这里写图片描述


从上图可以看出,vip地址192.168.1.210绑定在MASTER(192.168.1.201)的enp0s3网卡上。

5> 测试故障转移

将MASTER上的keepalived停止,查看vip是否会漂移到192.168.2.202上。

停止201的keepalived服务:

shell> service keepalived stop shell> ip addr

这里写图片描述


从上图可以看出,vip已经成功从201漂移到了202。此时再将201的keepalived服务启动后,由于201是MASTER,所以会将202的VIP抢占过来。

启动201的keepalived服务:

shell> service keepalived start

结���VIP又回到了201,如下图所示:

这里写图片描述

3、非抢占模式

master从故障中恢复后,不会抢占备份节点的vip

1> MASTER(192.168.1.201): global_defs { router_id nginx_01 #标识本节点的名称,通常为hostname } vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" interval 2 weight -20 } vrrp_instance VI_1 { state BACKUP interface enp0s3 virtual_router_id 51 mcast_src_ip 192.168.1.201 priority 100 advert_int 1 nopreempt authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.210 } track_script { chk_nginx # nginx存活状态检测脚本 } } 2> BACKUP(192.168.1.202) global_defs { router_id nginx_02 } vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" interval 2 weight -20 } vrrp_instance VI_1 { state BACKUP interface enp0s3 virtual_router_id 51 mcast_src_ip 192.168.1.202 priority 90 advert_int 1 nopreempt authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.210 } track_script { chk_nginx } }

和非抢占模式的配置相比,只改了两个地方:
1> 在vrrp_instance块下两个节点各增加了nopreempt指令,表示不争抢vip
2> 节点的state都为BACKUP
两个keepalived节点都启动后,默认都是BACKUP状态,双方在发送组播信息后,会根据优先级来选举一个MASTER出来。由于两者都配置了nopreempt,所以MASTER从故障中恢复后,不会抢占vip。这样会避免VIP切换可能造成的服务延迟。

《Keepalived权威指南》下载见

Nginx+Keepalived实现站点高可用 

Nginx+Keepalived实现站点高可用(负载均衡) 

构建高可用集群Keepalived+Haproxy负载均衡

CentOS6.5下 Keepalived高可用服务单实例配置

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/3c0b1272df7fcfcca7089d0b1b4a28d9.html