keepalived.conf 常用配置介绍(无LVS)
程序员文章站
2022-07-12 17:31:22
...
官方参考文档:https://keepalived.org/manpage.html
参考文档:https://www.cnblogs.com/rexcheny/p/10778567.html
全局配置模块
global_defs {
#收件人列表
notification_email {
[email protected]
}
#发件人
notification_email_from [email protected]
#用于发送电子邮件的远程 SMTP 服务器。
smtp_server 192.168.200.1
#SMTP 服务器连接超时时间(单位为秒)。
smtp_connect_timeout 30
#路由标识符,一般不需要改。同组中所有节点的 router_id 需要相同。
router_id LVS_DEVEL
#检查接收到的 VRRP 广播中的所有地址,可能非常耗时。一般情况下删除。
vrrp_skip_check_adv_addr
#强制执行严格的 VRRP 协议合规性。一般情况下删除。
vrrp_strict
#在接口上发送的免费ARP消息之间的延迟(单位为秒),默认为 0。一般不用改。
vrrp_garp_interval 0
#在接口上发送的未经请求的NA消息之间的延迟(单位为秒),默认为 0。一般不用改。
vrrp_gna_interval 0
}
脚本定义模块
vrrp_script nginx_status {
#脚本路径.
script /opt/script/nginx_status_check.sh
#脚本执行频率(单位为秒)。
interval 3
#脚本超时时间(单位为秒)。超时即失败。
timeout 10
#通过此权重调整优先级。范围:(-253..253)。
#+ 如果脚本执行结果为 0,并且 weight 配置的值大于 0,则优先级相应的增加;
#+ 如果脚本执行结果非 0,并且 weight 配置的值小于 0,则优先级相应的减少;
#+ 其他情况不变。
weight -10
#判定健康的次数。
rise 3
#判定失败的次数。
fall 3
#运行脚本的用户和组。
user nginx nginx
#假设脚本最初处于失败状态。
init_fail
}
#PS:常用的配置就是脚本路径加权重。
VRRP 实例配置模块
vrrp_instance VI_1 {
#初始状态(MASTER 或 BACKUP)。
state MASTER
#工作接口,通告选举使用哪个接口进行,即绑定 vip 的网卡。
interface eth0
#从 1 到 255 的任意唯一数字,用于区分在同一网络接口和地址族上的多个实例。
#+ 同组的虚拟路由 ID 要相同。
virtual_router_id 51
#优先级
priority 100
#VRRP 广播间隔(单位为秒)。推荐使用默认值。
advert_int 1
#身份验证配置
authentication {
auth_type PASS
auth_pass 1111
}
#定义虚拟IP(VIP)
virtual_ipaddress {
#IP/掩码 dev 配置在哪个网卡
192.168.200.16/24 dev eth1
#IP/掩码 dev 配置在哪个网卡的哪个别名上
192.168.200.17/24 dev label eth1:1
}
#定义执行的脚本
track_script {
#SCRIPT_NAME> 是 vrrp_script 定义的名称。
<SCRIPT_NAME>
<SCRIPT_NAME> weight <-253..253> [reverse|no_reverse]
}
#优先级较高的实例上线后通常会抢占优先级较低的实例。
#+ 注意:为了使其正常工作,初始状态不得为 MASTER。
#非抢占模式。
nopreempt
#抢占模式,默认值。
preempt
#抢占的时间间隔(单位为秒),即多长时间后再进行抢占。
preempt_delay 300
#状态切换为 master/backup/fault 时执行的脚本。
notify_master /path/to_master.sh [username [groupname]]
notify_backup /path/to_backup.sh [username [groupname]]
notify_fault "/path/fault.sh VG_1" [username [groupname]]
#关闭时执行的信号或脚本。
notify_stop <STRING>|<QUOTED-STRING> [username [groupname]]
}
想要更加详细了解权重和优先级的关系,可以参考另外的文档:keepalived 中关于 weight 和 preempt_delay 的实验