keepalived配置抢占模式

keepalived配置抢占模式(默认就是抢占模式)

keepalive配置抢占模式无非就是:当keepalived的master节点服务器挂了之后vip漂移到了备节点,当主节点恢复后主动将vip再次抢回来。
keepalived默认就是抢占模式。

抢占模式:
master故障--->backup顶上--->master恢复后抢占vip--->backup继续保持备用状态
抢占模式配置:
1、主节点的state设为MASTER,备节点设为为BACKUP;
2、其中master节点的优先级必须要高于backup节点的优先级;

配置抢占模式的Keepalived

#配置master主节点
[root@master~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id LB1			#keepalived服务器的路由标识,用于标识机器的,默认值是主机名
   vrrp_skip_check_adv_addr	#保持默认参数
   vrrp_strict				#保持默认参数
   vrrp_garp_interval 0		#保持默认参数
   vrrp_gna_interval 0		#保持默认参数
}

vrrp_instance VI_1 {		#VT_1是实例名,可以自定义,建议主备的实例名保持一致,让人一眼就知道这两个是一对的
    state MASTER			#配置为MASTER,state:有两种状态MASTER、BACKUP,谁为主节点是由prority决定,并不是由state决定
    interface ens33			# vip绑定的网卡
    virtual_router_id 51	#虚拟路由id,用于标识一个唯一的实例,master和backup该标识必须相同,用于表示他两是一组的
    priority 100			#优先级设为100,优先级用于确定谁具有vip,谁就是主节点
    advert_int 1			#心跳包的时间间隔,默认就是1秒就发一次
    authentication {		#主备之间的认证信息
        auth_type PASS		#认证类型,默认PASS
        auth_pass 1111		#认证密码
    }
    virtual_ipaddress {
        192.168.118.100		#vip地址
    }
}

[root@master~]#
#配置BACKUP主节点
[root@master~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id LB2 				#keepalived服务器的路由标识,用于标识机器的,默认值是主机名
   vrrp_skip_check_adv_addr		#保持默认参数
   vrrp_strict					#保持默认参数
   vrrp_garp_interval 0			#保持默认参数
   vrrp_gna_interval 0			#保持默认参数
}

vrrp_instance VI_1 {			#VT_1是实例名,可以自定义,建议主备的实例名保持一致,让人一眼就知道这两个是一对的
    state BACKUP				#配置为BACKUP,state:有两种状态MASTER、BACKUP,谁为主节点是由prority决定,并不是由state决定
    interface ens33				# vip绑定的网卡
    virtual_router_id 51		#虚拟路由id,用于标识一个唯一的实例,同时主备应该保持一致,用于表示他两是一组的
    priority 50					#设的比master的优先级低,优先级用于确定谁具有vip,谁就是主节点
    advert_int 1				#心跳包的时间间隔,默认就是1秒就发一次
    authentication {			#主备之间的认证信息
        auth_type PASS			#认证类型,默认PASS
        auth_pass 1111			#认证密码
    }   
    virtual_ipaddress {
        192.168.118.100			#vip地址
    }   
}

小结
1、全局配置中定义 router_id LB1,用于标识机器的,默认值是主机名;
2、主的state 设为MASTER,备的state设为BACKUP,谁为主节点是由prority决定,并不是由state决定;
3、主优先级priority 要比备的高;
4、virtual_router_id 51,虚拟路由id用于标识一个唯一的实例,同时主备应该保持一致,用于表示他两是一组的;
5、认证信息要一致,密码要一致。

启动keepalived

启动主服务器和备服务器上的keepalived服务:

[root@master~]# systemctl start  keepalived.service 	#启动主服务器的keepalived服务
[root@backup ~]# systemctl start   keepalived.service	#启动备服务器的keepalived服务
#可以看到vip绑定在master上
[root@master~]# ip a| head -n 17		
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:60:6e:7b brd ff:ff:ff:ff:ff:ff
    inet 192.168.118.129/24 brd 192.168.118.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.118.100/32 scope global ens33		#这就是vip
       valid_lft forever preferred_lft forever
[root@master~]# 

#backup 上并没有vip
[root@backup ~]# ip a| head -n 17
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:28:67:09 brd ff:ff:ff:ff:ff:ff
    inet 192.168.118.132/24 brd 192.168.118.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
[root@backup ~]# 

测试-vip的抢占

#停掉主上的keepalived服务,这样主就不会发送心跳包,备就会抢占vip
# master上已经没有vip了,如下所示:
[root@master~]# systemctl  stop keepalived.service  && ip a| head -n 17
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:60:6e:7b brd ff:ff:ff:ff:ff:ff
    inet 192.168.118.129/24 brd 192.168.118.255 scope global ens33
       valid_lft forever preferred_lft forever
[root@master~]# 
# 查看备,vip漂移到了备服务器上
[root@backup ~]# ip a| head -n 17
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:28:67:09 brd ff:ff:ff:ff:ff:ff
    inet 192.168.118.132/24 brd 192.168.118.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.118.100/32 scope global ens33
       valid_lft forever preferred_lft forever
[root@backup ~]# 

现在vip在备服务器上,当主重新启动,主就会发送心跳包,备收到心跳包发现优先级比自己高,就会释放vip,这样vip 就被master抢占回来了。如下:

#重新启动master服务器,vip就被主抢占回来了
[root@master ~]# systemctl  start keepalived.service
[root@master ~]# ip a| head -n 17
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:60:6e:7b brd ff:ff:ff:ff:ff:ff
    inet 192.168.118.129/24 brd 192.168.118.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.118.100/32 scope global ens33		#vip被主抢占回来了
       valid_lft forever preferred_lft forever
 

#查看备服务器的状态
[root@backup ~]# systemctl status keepalived     
â— keepalived.service - LVS and VRRP High Availability Monitor
   Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-10-15 15:16:42 CST; 15min ago
     Docs: man:keepalived(8)
           man:keepalived.conf(5)
           man:genhash(1)
           https://keepalived.org
  Process: 92667 ExecStart=/usr/local/keepalived/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 92668 (keepalived)
    Tasks: 2
   Memory: 664.0K
   CGroup: /system.slice/keepalived.service
           â”─92668 /usr/local/keepalived/sbin/keepalived -D
           └─92669 /usr/local/keepalived/sbin/keepalived -D

Oct 15 15:25:23 backup Keepalived_vrrp[92669]: Sending gratuitous ARP on ens33 for 192.168.118.100
Oct 15 15:25:28 backup Keepalived_vrrp[92669]: (VI_1) Sending/queueing gratuitous ARPs on ens33 for 192.168.118.100
Oct 15 15:25:28 backup Keepalived_vrrp[92669]: Sending gratuitous ARP on ens33 for 192.168.118.100
Oct 15 15:25:28 backup Keepalived_vrrp[92669]: Sending gratuitous ARP on ens33 for 192.168.118.100
Oct 15 15:25:28 backup Keepalived_vrrp[92669]: Sending gratuitous ARP on ens33 for 192.168.118.100
Oct 15 15:25:28 backup Keepalived_vrrp[92669]: Sending gratuitous ARP on ens33 for 192.168.118.100
Oct 15 15:25:28 backup Keepalived_vrrp[92669]: Sending gratuitous ARP on ens33 for 192.168.118.100
Oct 15 15:29:44 backup Keepalived_vrrp[92669]: (VI_1) Master received advert from 192.168.118.129 with higher priority 100, ours 50
Oct 15 15:29:44 backup Keepalived_vrrp[92669]: (VI_1) Entering BACKUP STATE	#进入了BACKUO 状态
Oct 15 15:29:44 backup Keepalived_vrrp[92669]: (VI_1) removing VIPs.			#删除vip

#备已经没有vip了
[root@backup ~]# ip a| head -n 17 
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:28:67:09 brd ff:ff:ff:ff:ff:ff
    inet 192.168.118.132/24 brd 192.168.118.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
[root@backup ~]# 

以上就是keepalived的抢占模式。

keepalived是一个用于Linux系统的高可用性解决方案,它通过VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)协议来实现高可用性服务。VRRP允许两个或多个节点共享一个虚拟IP地址(VIP),这样当主节点发生故障时,备份节点可以迅速接管流量,从而保证服务的连续性。 在非抢占模式下,当主节点因故障失去响应时,不会自动重新选举新的主节点。这意味着即使主节点恢复,也不会重新获得VIP的所有权,除非管理员手动介入。 配置keepalived实现非抢占模式同时主从节点都有虚拟VIP,你需要在keepalived配置文件中设置`nopreempt`选项。以下是一个配置示例: ```conf vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 nopreempt advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.0.100 } } vrrp_instance VI_2 { state BACKUP interface eth0 virtual_router_id 51 priority 50 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.0.100 } } ``` 在这个配置中,两台机器都配置了相同的`virtual_router_id`和`virtual_ipaddress`,但只有主节点(MASTER)配置了高优先级(这里为100),备份节点(BACKUP)配置了低优先级(这里为50)。通过`nopreempt`选项,备份节点不会抢占VIP,即使它的优先级变高。这样,即使主节点恢复,备份节点也不会将VIP交给主节点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值