keepalived根据服务是否可用切换vip
安装组件
yum -y install keepalived yum install -y psmisc #需要用到killall指令做健康检查
主节点配置
[root@nginx-01 ~]# cat /etc/keepalived/keepalived.conf
global_defs { router_id nginx } vrrp_script check_nginx { script "killall -0 nginx" #nginx为system服务名 interval 2 # 检测间隔时间,即两秒检测一次 fall 2 # 检测失败的最大次数,超过两次认为节点资源发生故障 rise 2 # 请求两次成功认为节点恢复正常 weight -50 #一个正整数或负整数。权重值,关系到整个集群角色选举 } vrrp_instance VI_1 { state backup #主节点也需要设置为backup,如果设置为master,当nginx服务挂掉之后,vip会暂时飘到备节点,但当主节点服务启起来之后,会再次将vip抢占回来 interface ens192 #网卡名 virtual_router_id 168 #虚拟路由id,用于区分不同的vrrp实例 priority 100 #值越大优先级越高 advert_int 1 #nopreempt #非抢占模式参数,不要取消注释 authentication { auth_type PASS auth_pass H1_shanghaiweizhong } virtual_ipaddress { 172.16.168.5/24 #vip,注意填写真实地址 } track_script { check_nginx #对应vrrp_script } }
从节点配置
[root@nginx-02 ~]# cat /etc/keepalived/keepalived.conf global_defs { router_id nginx } vrrp_script check_nginx { script "killall -0 nginx" #nginx为system服务名 interval 2 # 检测间隔时间,即两秒检测一次 fall 2 # 检测失败的最大次数,超过两次认为节点资源发生故障 rise 2 # 请求两次成功认为节点恢复正常 weight -50 #一个正整数或负整数。权重值,关系到整个集群角色选举 } vrrp_instance VI_1 { state backup #主节点也需要设置为backup,如果设置为master,当nginx服务挂掉之后,vip会暂时飘到备节点,但当主节点服务启起来之后,会再次将vip抢占回来 interface ens192 #网卡名 virtual_router_id 168 #虚拟路由id,用于区分不同的vrrp实例 priority 90 #值越大优先级越高 advert_int 1 #nopreempt #非抢占模式参数,不要取消注释,一般只需要state为master时,且只有master节点才需要配置 authentication { auth_type PASS auth_pass H1_shanghaiweizhong } virtual_ipaddress { 172.16.168.5/24 #vip,注意填写真实地址 } track_script { check_nginx #对应vrrp_script } }
验证:
主备机分别停用nginx,观察vip是否正常来回切换
浙公网安备 33010602011771号