Keepalived配置文件分为三大块

1、全局配置(Global Configuration)

    全局配置对整个keepalived起作用,不管是否使用LVS

        全局配置分为:全局定义(global definition)和静态地址路由(static ipaddress/routes)

2、VRRPD配置

    VRRPD是整个keepalived的核心

        VRRPD配置分为:VRRP同步组合VRRP实例

3、LVS配置

    LVS配置只在使用keepalived配置和管理LVS时需要使用,如果仅仅使用keepalived做HA,LVS洛佩兹完全不需要



全局定义配置详解

global_defs {                   
   notification_email {#当keepalived发生切换时,要将邮件发送给谁      
   [email protected]     
   [email protected]
   [email protected]
   }
   notification_email_from [email protected]#定义发送邮件时,谁是发件人   
   smtp_server 192.168.200.1 #定义邮件服务器地址                         
   smtp_connect_timeout 30 #定义超时时长                                 
   router_id LVS_DEVEL  #定义虚拟路由器标识
}


vrrp_script区域

    用于做健康状态检测,如果检测失败则杀死keepalived进程,或将vrrp_instance降低

vrrp_script chk_nginx {
    script "/etc/keepalived/nginx_chk.sh"
    interval 2
    fall 3
}

vrrp_sync_group区域

    vrrp_rsync_group用来定义vrrp_intance组,使得这个组内成员动作一致。举个例子来说明一下其功能:

两个vrrp_instance同属于一个vrrp_rsync_group,那么其中一个vrrp_instance发生故障切换时,另一个vrrp_instance也会跟着切换(即使这个instance没有发生故障)。

vrrp_sync_group VG_1 {
    group {
        inside_network   # name of vrrp_instance (below)
        outside_network  # One for each moveable IP.
        ...
    }    
    notify_master /path/to_master.sh  #表示 mastar出错时执行的脚本
    notify_backup /path/to_backup.sh   #表示 backup出错时执行的脚本
    notify_fault "/path/fault.sh VG_1"  #表示 出错时执行的脚本
    notify /path/notify.sh #表示任何一状态切换时都会调用该脚本,并且该脚本在以上三个脚本执行完成之后进行调用
    smtp_alert #表示是否开启邮件通知
}


vrrp_instance区域

    vrrp_instance用来定义对外提供服务的VIP区域及其相关属性。

vrrp_instance VI_1 {
    state BACKUP   #state 可以是MASTER或BACKUP
    
    interface eno16777736 #定义网卡,用来发送VRRP包
    
    virtual_router_id 51  #取值在0-255之间,用来区分多个instance的VRRP组播;同一网段中virtual_router_id的值不能重复
   
    priority 100  #用来选举master的,要成为master,那么这个选项的值最好高于其他机器50个点,该项取值范围是1-255
    
    nopreempt #配置为非抢占模式,当state为BACKUP时才生效
    
    advert_int 1 #健康查检时间间隔,默认1s
    
    authentication { #认证区域,认证类型有PASS和HA(IPSEC),推荐使用PASS(密码只识别前8位)
        auth_type PASS
        auth_pass 1111  #主备keepalived在此配置要一样
    }
    
    virtual_ipaddress {  #配置虚拟路由器IP
	192.168.112.2
    }
    
    track_script {  #调用vrrp_script健康状态检测脚本
        chk_nginx
    }
}