Keepalived 实现IP地址接管(VRRP VIP地址漂移)
前言
本环境是基于 Centos 7.8 系统构建 Keepalived 学习环境
具体构建,请参考 Keepalived 环境部署
一、单实例主备模式的keepalived
环境准备
role | host | ip | keepalive-version |
---|---|---|---|
MASTER | node01 | 192.168.5.11 | keepalived-2.0.12 |
BACKUP | node02 | 192.168.5.12 | keepalived-2.0.12 |
Client | node03 | 192.168.5.13 | ---- |
配置 MASTER
[root@node01 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.5.10
smtp_connect_timeout 30
router_id LVS_DEVEL1
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 200
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.5.20
}
}
[root@node01 ~]# systemctl start keepalived.service
配置 BACKUP
[root@node02 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.5.10
smtp_connect_timeout 30
router_id LVS_DEVEL2
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.5.20
}
}
[root@node02 ~]# systemctl start keepalived.service
测试
node02 持续 ping VIP
[root@node03 ~]# ping 192.168.5.20
查看虚拟IP
node01
node02
停止node01 keepalived服务
[root@node01 ~]# killall keepalived
[root@node01 ~]# killall keepalived
keepalived: no process found
node01
node02
启动keepalived服务
[root@node01 ~]# systemctl start keepalived
node01
node02
追踪系统日志
当MASTER 发生故障时,VIP 实现地址漂移!!!
查看node03 ping 包 并不受任何影响
二、双多实例双主模式的keepalived
配置 MASTER
[root@node01 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.5.10
smtp_connect_timeout 30
router_id LVS_DEVEL1
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 200
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.5.20
}
}
vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.5.30
}
}
[root@node01 ~]# systemctl restart keepalived.service
配置 BACKUP
[root@node02 ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.5.10
smtp_connect_timeout 30
router_id LVS_DEVEL2
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.5.20
}
}
vrrp_instance VI_2 {
state MASTER
interface ens33
virtual_router_id 52
priority 200
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.5.30
}
}
[root@node02 ~]# systemctl restart keepalived.service
查看VIP
node01
node02
node01 发生故障
[root@node01 ~]# systemctl stop keepalived.service
[root@node01 ~]# ps -ef | grep keepalived
root 32339 31955 0 09:33 pts/0 00:00:00 grep --color=auto keepalived
node01
node02
node01 恢复
[root@node01 ~]# systemctl start keepalived.service
[root@node01 ~]# ps -ef | grep keepalived
root 32364 1 0 09:35 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D
root 32365 32364 0 09:35 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D
root 32367 31955 0 09:35 pts/0 00:00:00 grep --color=auto keepalived
node01
node02
node02 发生故障
[root@node02 ~]# systemctl stop keepalived.service
[root@node02 ~]# ps -ef | grep keepalived
root 31217 30987 0 09:37 pts/0 00:00:00 grep --color=auto keepalived
node02
node01
node02 恢复
[root@node02 ~]# systemctl start keepalived.service
[root@node02 ~]# ps -ef | grep keepalived
root 31226 1 0 09:39 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D
root 31227 31226 0 09:39 ? 00:00:00 /usr/local/keepalived/sbin/keepalived -D
root 31229 30987 0 09:39 pts/0 00:00:00 grep --color=auto keepalived
node02
node01
当 双 MASTER 分别发生故障时,VIP 实现地址漂移!!!
查看node03 ping 包 并不受任何影响