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漂移后,高优先级节点恢复后不再抢占。

标签: Keepalived

添加新评论