keepalived部署
keepalived部署
一、概念
1.1 概述
keepalived起初是为了lvs设计的,用于监控lvs各服务节点状态。在加入VRRP服务后可以做为其它服务的高可用软件。
VRRP(Virtual Router Redundancy)虚拟路由冗余协议。
1.2 工作原理
keepalived主节点向备节点不断发送心跳消息。当主节点发生故障,备节点无法继续监测到主节点心跳,接管主节点的IP资源及服务。当主节点恢复时,备节点会释放,恢复为备用状态。
二、部署
2.1下载
官方网站:https://www.keepalived.org/download.html
2.2 通过仓库安装
yum install keepalived
#yum安装方式
apt install keepalived
#apt安装方式2.3 编译安装
#安装依赖
yum install openssl-devel libnl3-devel make gcc
#编译参数
./configure --prefix=/apps/keepalived --disable-fwmark
#--disable-fwmark
make && make install
mkdir /etc/keepalived
cp /apps/keepalived/etc/keepalived.conf.sample /etc/keepalived/keepalived.conf
#将模板配置文件拷贝到/etc/keepalived下。三、配置
3.1 重要文件
主配置文件:/etc/keepalived/keepalived.conf
日志文件:/var/log/messages
tail -f /var/log/message
#查看日志3.2 主配置文件
编辑主配置文件/etc/keepalived/keepalived.conf,如没有则创建。
#配置文件结构
global_defs {}
#全局配置
vrrp_instance VI_1 {}
#VRRP配置部分
virtual_server 192.168.200.100 443 {}
#lvs配置3.2.1 全局部分
global_defs {
notification_email {
#当keepalived服务宕机异常,进行邮件通知。
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
#获取宿主机的hostname作为router_id
vrrp_skip_check_adv_addr
#跳过心跳检查,默认不跳过。
#所有报文都检查比较消耗性能。如果收到报文和上一个报文是同一个路由器,则跳过检查报文中的源地址。
#vrrp_strict
#严格遵守VRRP协议,建议注释掉。
#严格模式:1.不允许没有VIP 2.配置了单播邻居 3.在vrrp版本2中有IPv6地址
vrrp_iptables
#不接受VIP进来的请求,直接转发到后端服务器。
vrrp_garp_interval 0
#ARP报文的发送延迟,一般不延迟。
vrrp_gna_interval 0
#消息延迟发送,一般不延迟
vrrp_mcast_group4 224.0.0.10
#设置ipv4组播地址,默认可不配。
}3.2.2 VRRP配置部分
vrrp_instance VI_1 {
state MASTER
#当前节点在次虚拟路由器上的初始状态状态,分为MASTER和BACKUP。
interface eth0
#通信网络接口
virtual_router_id 51
#实例ID,在整个局域网中需要唯一,范围是0-255。
priority 100
#优先级1-254,数字大的优先。
advert_int 2
#VRRP通报间隔,心跳间隔时间,默认1秒。
authentication {
#服务器通信验证,master和backup保持一致。
auth_type PASS
auth_pass 12345678
#密码为8位,超过8位只取前8位。
}
virtual_ipaddress {
#虚拟ip地址即VIP
192.168.200.16
192.168.200.17
192.168.200.18
}
}
3.3 配置范例
主机1
global_defs {
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
#vrrp_strict
vrrp_iptables
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER
interface ens192
virtual_router_id 20
#ID需要在局域网内唯一
priority 100
#根据优先级确定主备
advert_int 2
authentication {
auth_type PASS
auth_pass 12345678
}
virtual_ipaddress {
192.168.3.100
}
}主机2
global_defs {
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
#vrrp_strict
vrrp_iptables
#
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state BACKUP
interface ens192
virtual_router_id 30
#ID需要在局域网内唯一
priority 90
#根据优先级确定主备
advert_int 2
authentication {
auth_type PASS
auth_pass 12345678
}
virtual_ipaddress {
192.168.3.100
}
}四、非抢占模式
4.1 非抢占模式
global_defs {
#vrrp_strict
#关闭严格模式
}
vrrp_instance VI_1 {
state BACKUP
#所有节点标记为BACKUP
nopreempt
#不参与抢占
}
#在高优先级节点上进行配置。当VIP漂移后,高优先级节点恢复后不再抢占。