Keepalived 是一个用于实现高可用性的开源软件,它基于 VRRP(Virtual Router Redundancy Protocol)协议,允许多台服务器协同工作,以确保在某个服务器出现故障时服务的连续性。Keepalived 的核心思想是将多台服务器配置成主服务器(MASTER)和备份服务器(BACKUP),它们共享一个虚拟 IP 地址(VIP),并使用 VRRP 协议来协调主备之间的状态。
以下是 Keepalived 的主要模块及其作用的介绍:
Core 模块:
VRRP 模块:
Check 模块:
Keepalived 的工作流程如下:
Keepalived 提供了一个强大的工具,可用于确保基于 LVS 的服务在面临硬件或软件故障时保持高可用性。它在数据中心和网络环境中广泛使用,用于构建可靠的负载均衡和高可用解决方案。通过合理配置和使用 Keepalived,可以降低单点故障的风险,提高系统的可用性和稳定性。
这次实验使用LVS的DR模式
主DR 服务器:192.168.2.14
备DR 服务器:192.168.2.15
Web 服务器1:192.168.2.12
Web 服务器2:192.168.2.13
vip:192.168.2.188
1配置主DR服务器
安装 ipvsadm软件和keepalived软件
yum -y install ipvsadm keepalived
启动ip_vs模块
modprobe ip_vs
(1)配置keeplived(主、备DR 服务器上都要设置)
vim 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 127.0.0.1
smtp_connect_timeout 30
router_id LVS_01
vrrp_skip_check_adv_addr
# vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.2.188
}
}
virtual_server 192.168.2.188 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.2.12 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.2.13 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
配置完成
查验是否配置成功
ip add


配置成功
scp /etc/keepalived/keepalived.conf 192.168.2.15:/etc/keepalived/keepalived.conf
从服务器上
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 127.0.0.1
smtp_connect_timeout 30
router_id LVS_02
vrrp_skip_check_adv_addr
# vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state BUCKUP
interface ens33
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.2.188
}
}
virtual_server 192.168.2.188 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.2.12 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.2.13 80 {
weight 1
TCP_CHECK {
connect_port 80
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}

检查是否配置成功 关闭主服务器keepalived


配置成功
节点服务器参考上一篇博客的配置