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的抢占模式。