Keepalived —— 子配置文件设定 笔记

Keepalived ------ 子配置文件设定 笔记

背景与目的

当 keepalived 的配置项增多时,全部写在 /etc/keepalived/keepalived.conf 会让主配置变得冗长、难以维护。通过在主配置中使用 include 指令加载子配置文件,可以把每个 VRRP 实例或不同功能分离到独立文件,提升可读性与可维护性。


总体思路

  • 把全局设置(global_defs)放在主配置文件 /etc/keepalived/keepalived.conf。
  • 在主配置中使用 include /etc/keepalived/conf.d/*.conf 指定一个目录来放置子配置文件。
  • 每个 VRRP 实例写成一个独立的子文件,例如 /etc/keepalived/conf.d/webvip.conf。
  • 使用 keepalived -t -f /etc/keepalived/keepalived.conf 测试语法,确认无误后重启服务。

主配置示例(/etc/keepalived/keepalived.conf)

text 复制代码
! Configuration File for keepalived

global_defs {
   notification_email {
     timinglee_zln@163.com
   }
   notification_email_from timinglee_zln@163.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id KA1
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 1
   vrrp_gna_interval 1
   vrrp_mcast_group4 224.0.0.44
}

include /etc/keepalived/conf.d/*.conf

说明:

  • global_defs 放全局参数(邮件、router_id、GRAT ARP 等)。
  • vrrp_skip_check_adv_addr、vrrp_garp_interval、vrrp_gna_interval 等可根据网络环境调整。
  • include 行会加载 conf.d 目录下所有 .conf 文件��顺序按文件名排序。

创建目录并写入子配置:

bash 复制代码
mkdir -p /etc/keepalived/conf.d
vim /etc/keepalived/conf.d/webvip.conf   # 写入上面示例

子配置示例(/etc/keepalived/conf.d/webvip.conf)

text 复制代码
vrrp_instance WEB_VIP {
    state MASTER               # MASTER 或 BACKUP(在备节点改为 BACKUP)
    interface eth0
    virtual_router_id 51
    priority 100               # MASTER 大于 BACKUP(例如 100 vs 80)
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.254.100/24 dev eth0 label eth0:0
    }
}

要点说明:

  • state:在主节点写 MASTER,备节点写 BACKUP。
  • virtual_router_id:同一 VIP 的所有节点必须一致;不同 VIP 需不同 ID。
  • priority:数字越大越优先成为 MASTER。
  • authentication:保证所有参与节点的 auth_pass 一致。
  • virtual_ipaddress:可以直接写 172.25.254.100/24 或带 dev/label 指定别名方式,根据系统兼容性选择。
  1. 测试配置语法:
bash 复制代码
keepalived -t -f /etc/keepalived/keepalived.conf
  1. 重启服务:
bash 复制代码
systemctl restart keepalived.service
  1. 查看接口确认 VIP 已添加:
bash 复制代码
ip addr show eth0
# 或 ifconfig

常见问题与排障建议

  • VIP 未出现或无法漂移:
    • 用 keepalived -t 检查配置语法。
    • 查看 keepalived 日志:tail -f /var/log/keepalived.log 或 journalctl -u keepalived -f。
    • 确认 interface 名称正确(虚拟化环境接口名可能不是 eth0)。
    • 检查是否有 NetworkManager 或 cloud-init 等管理网络,可能覆盖别名或二级地址。
    • 多播/组播被宿主或虚拟网络阻断会导致 VRRP 报文不可见或不通。
    • auth_pass、virtual_router_id、priority 等参数不匹配会导致选举失败。
  • 子配置未生效:
    • 确认 include 路径正确,文件名后缀匹配(示例 *.conf)。
    • 检查子文件权限(keepalived 进程应能读取)。
    • 修改后需重启 keepalived 才能生效(或向 keepalived 发送 reload,由发行版支持与否决定)。
  • 多个实例管理:
    • 每个实例用单独文件,文件名建议以实例名或功能命名(便于排序与查找)。
    • 当有多个 VIP 或不同服务时,可在 conf.d 中分别维护 webvip.conf、dbvip.conf 等。

进阶建议

  • 将 conf.d 目录纳入版本控制(git)以便变更追踪与审核。
  • 为子配置建立命名规范与注释(创建时间、负责人、用途)。
  • 在变更前在测试环境跑 keepalived -t 并做故障演练(停掉 MASTER 查看 BACKUP 是否接管)。
  • 若有自动化部署(Ansible、Salt 等),把主/子配置模板化生成并分发。

、负责人、用途)。

  • 在变更前在测试环境跑 keepalived -t 并做故障演练(停掉 MASTER 查看 BACKUP 是否接管)。
  • 若有自动化部署(Ansible、Salt 等),把主/子配置模板化生成并分发。
相关推荐
.道阻且长.17 小时前
Linux基本开发工具:编译器gcc/g++
linux·运维·服务器·职场和发展
HideF1 天前
Linux
linux·服务器·网络
sbjdhjd1 天前
网工进阶笔记:H3CSE 园区网全栈技术与协议汇总
网络·笔记·云计算·ssh·网络工程·vlan·aaa
aixingpan1 天前
aixingpan.cn API开发文档:前端查询夏令时和时区接口指南
前端·php
Ruiery1 天前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
乌恩大侠1 天前
从 AI-RAN 到 AI Agent:基于 NVIDIA Nemotron 构建 5G/6G 智能网络故障诊断系统
服务器·人工智能·5g·o-ru·ai-ran·电信大模型
海绵宝宝的月光宝盒1 天前
14-AutoCAD-阵列命令应用与案例实战(AR)
经验分享·笔记·自动化·课程设计·制造·学习方法·cad
白山编程大哥1 天前
接口幂等性是什么?如何设计?
笔记
ACP广源盛139246256731 天前
6 盘位存储扩展方案选型笔记:YLB3116 @ACP评估记录
笔记·硬件架构·硬件工程·国产芯片
迪菲赫尔曼1 天前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测