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_addrvrrp_garp_intervalvrrp_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.logjournalctl -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 等),把主/子配置模板化生成并分发。
相关推荐
mounter6251 小时前
现代 Linux 内存管理的演进与变革:从传统 LRU 到多代架构 MGLRU
linux·服务器·kernel
The Sheep 20232 小时前
Vue复习
linux·服务器·数据库
qeen872 小时前
【C++】类与对象之类的默认成员函数(二)
android·c语言·开发语言·c++·笔记·学习
CRMEB系统商城2 小时前
CRMEB多商户系统(Java)v2.3公测版发布
java·开发语言·人工智能·小程序·开源·php
m0_736034852 小时前
存储基础和虚拟化
笔记
源图客3 小时前
Minio配置HTTPS服务
服务器·网络协议·https
修炼室3 小时前
外网环境原生直连校内服务器:基于内网穿透 + SSH 密钥认证的完整实践指南
服务器·ssh·php
Titan20244 小时前
Linux动静态库
linux·服务器·c++
AOwhisky4 小时前
MySQL 学习笔记(第六期):MySQL 备份与恢复
运维·数据库·笔记·学习·mysql·云计算
j_xxx404_5 小时前
MySQL表操作硬核解析:从 CREATE TABLE 到磁盘文件、ALTER TABLE 与 DDL 风险
运维·服务器·数据库·c++·mysql·adb·ai