一、什么是keepalived?
Keepalived is a routing software written in C. The main goal of this project is to provide simple and robust facilities for loadbalancing and high-availability to Linux system and Linux based infrastructures.
keepalived是一个用c语言编写的路由软件,这个项目的主要目标是为Linux系统和基于Linux的基础设施提供简单而健壮的负载平衡和高可用性设施。
- keepalived是一个路由软件,有两个功能:
1、负载均衡
2、高可用,使用的是vrrp(虚拟路由冗余协议)协议
二、安装keepalived软件
在安装了负载均衡器的服务器上安装keepalived软件,我们选择yum安装
1、安装keepalived
yum install keepalived -y
2、修改配置文件
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.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
#注释掉,遵守最严格的vrrp协议
#vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
#实现高可用的配置
vrrp_instance VI_1 { #启动一个vrrp的实例 VI_1 实例名,可以自定义,一个实例背后就是一个keepalived相关的进程
state MASTER #角色 分为master和backup
interface ens33 #在哪个接口上监听vrrp协议,同时绑定vip到那个接口
virtual_router_id 88 #虚拟路由id 范围0~255
priority 120 #优先级 范围0~255
advert_int 1 #advert interval 宣告消息 时间间隔 1秒
authentication { #认证
auth_type PASS #认证的类型是密码认证
auth_pass 1111 #具体的密码,可以自己修改
}
virtual_ipaddress { #vip的配置,vip可以是多个ip,也可以是一个vip
192.168.178.188
}
}
3、准备第二台安装了负载均衡器(nginx)和keepalived的服务器,修改其keepalived配置
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.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
#注释掉,遵守最严格的vrrp协议
#vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
#实现高可用的配置
vrrp_instance VI_1 { #启动一个vrrp的实例 VI_1 实例名,可以自定义,一个实例背后就是一个keepalived相关的进程
state BACKUP #角色 分为master和backup
interface ens33 #在哪个接口上监听vrrp协议,同时绑定vip到那个接口
virtual_router_id 88 #虚拟路由id 范围0~255
priority 100 #优先级 范围0~255
advert_int 1 #advert interval 宣告消息 时间间隔 1秒
authentication { #认证
auth_type PASS #认证的类型是密码认证
auth_pass 1111 #具体的密码,可以自己修改
}
virtual_ipaddress { #vip的配置,vip可以是多个ip,也可以是一个vip
192.168.178.188
}
}
配置了角色为MASTER的服务器的keepalived的优先级要高于配置角色为BACKUP的优先级,此时vip(Virtual IP 虚拟ip)会在MASTER服务器上。
4、验证
启动两台服务器的keepalived服务,并设置开机自启
systemctl start keepalived
systemctl enable keepalived
查看ip地址,可以发现vip在MASTER服务器上
对外公布vip 192.168.205.188地址访问
vip漂移
VIP 漂移的主要作用是实现高可用性。当原来拥有 VIP 的 master 节点出现故障(例如服务停止、网络问题等)时,backup 节点能够自动接管 VIP,继续提供服务,从而避免单点故障,确保服务的连续性。这样,用户在访问服务时,无需关心实际提供服务的是哪个节点,只需通过 VIP 进行访问,而 VIP 会根据节点状态自动切换到正常工作的节点上。在一些对服务可用性要求较高的场景中,如网站服务器、数据库服务器等,Keepalived 的 VIP 漂移功能可以有效地提高系统的可靠性和稳定性。