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是否正常来回切换

posted @ 2025-02-06 10:20  joker灬上上谦1  阅读(43)  评论(0)    收藏  举报