简介
Keepalived是VRRP协议的实现,原生设计目的是高可用IPVS服务。此外,Keepalived能够根据配置文件的规则生成IPVS规则,并能够对各RealServer的健康状态进行检测。
Keepalived的高可用功能是通过VRRP协议实现的,它的出现是为了解决静态路由单点故障的问题,当某一节点出现故障时,可以防止导致整个网络不可用。Keepalived除了可以高可用LVS之外,还可以作为其他系统网络服务(Nginx、Haproxy等)的高可用解决方案(Keepalived可通过调用vrrp_script来高可用其它服务,并通过调用vrrp_track来追踪每一个服务)。
功能
Keepalived有三个重要功能,如下。
(1) 高可用系统网络服务。
Keepalived可以实现在两台或多台主机之间的故障切换转移。如果在两台主机中都安装了Keepalived,当正常工作时,有一台主机工作为Master角色,另一台主机工作为Backup角色。角色为Master的主机获得所有资源(VIP资源、服务资源)并向用户提供服务,角色为Backup的主机不提供服务而仅作为Master主机的热备。当角色为Master的主机出现故障时,角色为Backup的主机将自动接管Master主机的所有资源(VIP资源、服务资源)并开始工作。当Master主机故障修复完成时,将重新接管原来的资源和工作,而Backup主机则释放Master主机故障时它接管的资源和工作,各自恢复原来的角色。
(2) 实现对LVS集群中各RealServer的健康状态进行检测。
Keepalived可以通过在自身配置文件keepalived.conf中配置LVS集群服务中各台RealServer的IP地址和相关参数,并可以通过网络层、传输层和应用层这三层进行探测各RealServer的健康状态。当有一台或多台RealServer出现故障而无法提供服务时,Keepalived服务可以把出现故障的RealServer从LVS的正常转发队列中移除,保证不影响用户的访问。而当有RealServer故障修复完成时,Keepalived服务可以将其重新加入LVS的正常转发队列中,向用户提供服务。
(3) 管理LVS负载均衡软件。
Keepalived可以读取配置文件,并通过一个更为底层的接口来管理IPVS并生成IPVS规则,这使得LVS的使用更为方便
安装
下载tar包后发送至linux机器,进入tar包所在目录,先解压
tar -zxvf keepalived-2.0.18.tar.gz
进入解压目录
keepalived-2.0.18
使用configure命令配置安装目录与核心配置文件所在位置
./configure --prefix=/usr/local/keepalived --sysconf=/etc
安装过程若出现警告,则需安装libnl/libnl-3依赖
yum -y install libnl libnl-devel
重新configure即可
后安装
make && make install
配置文件
global_defs {
# 路由id:当前安装keepalived节点主机标识符,保证全局唯一
router_id LVS_171
}
vrrp_instance VI_1 {
# 表示状态是 主机master/备用机backup
state MASTER
# 当前实例绑定的网卡(一般每台机器都是不同的)
interface ens160
# 保证主备节点一致
virtual_router_id 51
# 优先级/权重 谁的优先级高,在master挂掉之后,就能成为master
priority 100
# 主备之间同步检查的时间间隔,默认1s
advert_int 1
# 认证授权的密码,防止非法节点的进入
authentication {
auth_type PASS
auth_pass 1111
}
# 虚拟ip
virtual_ipaddress {
192.168.1.161
}
}
其中interface网卡需要使用
ip addr
获取ens开头的网卡
此时启动keeplived
cd /usr/local/keepalived/sbin/
./keepalived
此时再次查看网卡
多出了配置的虚拟ip
进程也已经启动了