【Keepalived】抢占模式、延迟抢占模式与非抢占模式详解
本篇博客将介绍Keepalived抢占模式、延迟抢占模式还有非抢占模式的配置流程以及运行的效果通过本篇博客你可以理解Keepalived的三个模式的配置和使用环境系统RHEL9.3Keepalived版本Keepalived v2.2.8 (04/04,2023)主机名及IPKA1172.25.254.50/24KA2172.25.254.60/241、三种模式的简介默认为抢占模式preempt即当高优先级的主机恢复在线后会抢占低先级的主机的master角色这样会使vip在KA主机中来回漂移造成网络抖动建议设置为非抢占模式 nopreempt 即高优先级主机恢复后并不会抢占低优先级主机的master角色非抢占模块下,如果原主机down机, VIP迁移至的新主机, 后续也发生down时,仍会将VIP迁移回原主机2、非抢占模式配置及效果编辑配置文件# 编辑KA1子配置文件 [rootKA1 ~]# vim /etc/keepalived/conf.d/WEB_VIP.conf vrrp_instance WEB_VIP { state BACKUP # 注意非抢占模式下主机互为BACKUP interface eth0 virtual_router_id 51 nopreempt # 添加该参数启用非抢占模式 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.25.254.100/24 dev eth0 label eth0:0 } } # 重启服务 [rootKA1 ~]# systemctl restart keepalived.service# 编辑KA2子配置文件 [rootKA2 ~]# vim /etc/keepalived/conf.d/WEB_VIP.conf vrrp_instance WEB_VIP { state BACKUP interface eth0 virtual_router_id 51 nopreempt priority 80 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.25.254.100/24 dev eth0 label eth0:0 } } # 重启服务 [rootKA2 ~]# systemctl restart keepalived.service测试# 关闭master的服务 [rootKA1 ~]# systemctl stop keepalived.service # 查看KA2的VIP情况可见VIP已经漂移到KA2 [rootKA2 ~]# ip a 1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0c:29:81:44:a2 brd ff:ff:ff:ff:ff:ff altname enp3s0 altname ens160 inet 172.25.254.60/24 brd 172.25.254.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet 172.25.254.100/24 scope global secondary eth0:0 valid_lft forever preferred_lft forever inet6 fe80::47bf:3a19:f4d5:a851/64 scope link noprefixroute valid_lft forever preferred_lft forever # 开启KA1的服务 [rootKA1 ~]# systemctl start keepalived.service # 再查看KA2的VIP # 可见KA2虽然优先级低但是VIP还在 [rootKA2 ~]# ip a 1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0c:29:81:44:a2 brd ff:ff:ff:ff:ff:ff altname enp3s0 altname ens160 inet 172.25.254.60/24 brd 172.25.254.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet 172.25.254.100/24 scope global secondary eth0:0 valid_lft forever preferred_lft forever inet6 fe80::47bf:3a19:f4d5:a851/64 scope link noprefixroute valid_lft forever preferred_lft forever可见非抢占模式下不论优先级只要主机不挂VIP都不会漂移3、延迟抢占模式配置及效果抢占延迟模式即优先级高的主机恢复后不会立即抢回VIP而是延迟一段时间默认300s再抢回VIPpreempt_delay # #指定抢占延迟时间为#s默认延迟300s编辑配置文件# 编辑KA1子配置文件 [rootKA1 ~]# vim /etc/keepalived/conf.d/WEB_VIP.conf vrrp_instance WEB_VIP { state BACKUP interface eth0 virtual_router_id 51 preempt_delay 10 # 配置延迟时间为10s方便观察 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.25.254.100/24 dev eth0 label eth0:0 } } # 重启服务 [rootKA1 ~]# systemctl restart keepalived.service# 编辑KA2子配置文件 [rootKA2 ~]# vim /etc/keepalived/conf.d/WEB_VIP.conf vrrp_instance WEB_VIP { state BACKUP interface eth0 virtual_router_id 51 preempt_delay 10 priority 80 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.25.254.100/24 dev eth0 label eth0:0 } } # 重启服务 [rootKA2 ~]# systemctl restart keepalived.service测试# 关闭KA1服务 [rootKA1 ~]# systemctl stop keepalived.service # 查看VIP漂移情况 # 可见VIP到了KA2 [rootKA2 ~]# ip a 1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0c:29:81:44:a2 brd ff:ff:ff:ff:ff:ff altname enp3s0 altname ens160 inet 172.25.254.60/24 brd 172.25.254.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet 172.25.254.100/24 scope global secondary eth0:0 valid_lft forever preferred_lft forever inet6 fe80::47bf:3a19:f4d5:a851/64 scope link noprefixroute valid_lft forever preferred_lft forever # 开启KA1服务后马上查看KA2的VIP # 可见当前VIP还在KA2上 [rootKA1 ~]# systemctl start keepalived.service [rootKA2 ~]# ip a 1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0c:29:81:44:a2 brd ff:ff:ff:ff:ff:ff altname enp3s0 altname ens160 inet 172.25.254.60/24 brd 172.25.254.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet 172.25.254.100/24 scope global secondary eth0:0 valid_lft forever preferred_lft forever inet6 fe80::47bf:3a19:f4d5:a851/64 scope link noprefixroute valid_lft forever preferred_lft forever # 等待10s后查看KA1VIP情况 # 可见VIP又回到了KA1上 [rootKA1 ~]# ip a 1: lo: LOOPBACK,UP,LOWER_UP mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: BROADCAST,MULTICAST,UP,LOWER_UP mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0c:29:93:eb:8f brd ff:ff:ff:ff:ff:ff altname enp3s0 altname ens160 inet 172.25.254.50/24 brd 172.25.254.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet 172.25.254.100/24 scope global secondary eth0:0 valid_lft forever preferred_lft forever inet6 fe80::e3b4:c2e9:dca7:2b9b/64 scope link noprefixroute valid_lft forever preferred_lft forever可见在延迟抢占模式下会优先级高的主机会等待设定的时间结束后才枪占VIP至此实验全部结束