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发生切换时,要将邮件发送给谁 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_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 } }