keepalived的抢占模式和非抢占模式

nginx+keepalived的主备模式,以及双主模式之前已经介绍过,下面主要讲解keepalived的非抢占模式。

 

1 非抢占模式思路和网络拓扑

  • 节点类型全部是 BACKUP,
  • BACKUP-1 故障时,BACKUP-2 会抢占 VIP,
  • BACKUP-1 从故障中恢复后,不会从 BACKUP-2 抢回 VIP。

优点:故障恢复时,可避免 VIP 切换造成的服务延迟。

 

vrrp_instance INS_11 {
    state BACKUP ## 各节点类型都是 BACKUP
    nopreempt ## 非抢占(preempt 意思是抢占)
}

2 具体的配置内容

keepalived的BACKUP_1配置如下

! Configuration File for keepalived

global_defs {
   script_user root
   enable_script_security

}


vrrp_script check_nginx_alived {
        script "/usr/bin/killall -0 nginx"
        interval 2
        fall 3
}

vrrp_instance INS_1 {
    state BACKUP
    interface eth0
    virtual_router_id 58
    priority 100
    advert_int 2
    nopreempt         # 主从模式不用这个参数
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
         172.21.128.11
    }

   track_script {
       check_nginx_alived
   }

}

keepalived的BACKUP_1配置如下

! Configuration File for keepalived

global_defs {
   script_user root
   enable_script_security

}

vrrp_script check_nginx_alived {
        script "/usr/bin/killall -0 nginx"
        interval 2
        fall 3
}

vrrp_instance INS_1 {
    state BACKUP
    interface eth0
    virtual_router_id 58
    priority 80
    advert_int 2
    nopreempt         #主从不用这个参数
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
         172.21.128.11
    }

   track_script {
       check_nginx_alived
   }

}

3 配置详解

vrrp_script


scrip "/path/to/somewhere":指定要执行的脚本的路径。
interval <INTEGER>:指定脚本执行的间隔。单位是秒。默认为1s。
timeout <INTEGER>:指定在多少秒后,脚本被认为执行失败。
weight <-254 --- 254>:调整优先级。默认为2.
rise <INTEGER>:执行成功多少次才认为是成功。
fall <INTEGER>:执行失败多少次才认为失败。
user <USERNAME> [GROUPNAME]:运行脚本的用户和组。
init_fail:假设脚本初始状态是失败状态。


weight: 
1. 如果脚本执行成功(退出状态码为0),weight大于0,则priority增加。
2. 如果脚本执行失败(退出状态码为非0),weight小于0,则priority减少。
3. 其他情况下,priority不变。

vrrp_instance

state MASTER|BACKUP:指定该keepalived节点的初始状态。
interface eth0:vrrp实例绑定的接口,用于发送VRRP包。


track_interface {
  eth0
  eth1 weight <-254-254>
  ...
}:如果track的接口有任何一个出现故障,都会进入FAULT状态。

track_script {
  <SCRIPT_NAME>
  <SCRIPT_NAME> weight <-254-254>
}:添加一个track脚本(vrrp_script配置的脚本。)

mcast_src_ip <IPADDR>:指定发送组播数据包的源IP地址。默认是绑定VRRP实例的接口的主IP地址。
unicast_src_ip <IPADDR>:指定发送单薄数据包的源IP地址。默认是绑定VRRP实例的接口的主IP地址。

virtual_router_id 51:指定VRRP实例ID,范围是0-255.
priority 100:指定优先级,优先级高的将成为MASTER。
advert_int 1:指定发送VRRP通告的间隔。单位是秒。
authentication {
  auth_type PASS|AH:指定认证方式。PASS简单密码认证(推荐),AH:IPSEC认证(不推荐)。
  auth_pass 1234:指定认证所使用的密码。最多8位。
}

virtual_ipaddress {
   <IPADDR>/<MASK> brd <IPADDR> dev <STRING> scope <SCOPE> label <LABEL>
   192.168.200.17/24 dev eth1
   192.168.200.18/24 dev eth2 label eth2:1
}:指定VIP地址。

nopreempt:设置为不抢占。默认是抢占的,当高优先级的机器恢复后,会抢占低优先级的机器成为MASTER,而不抢占,则允许低优先级的机器继续成为MASTER,即使高优先级的机器已经上线。如果要使用这个功能,则初始化状态必须为BACKUP。
preempt_delay:设置抢占延迟。单位是秒,范围是0---1000,默认是0.发现低优先级的MASTER后多少秒开始抢占。

3 测试结论

  • advert_int 5   keepalived间心态频率时间,当keepalived的服务停止时,${advert_int} vip会漂移
  • interval  2   fall 3  表示当nginx停止时,${interval }*${fall } vip会漂移
  • 先停nginx,vip会漂移,角色变成backup状态,nginx恢复,不会抢占(主从模式)

 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值