12.3.2 安装方式对比(YUM/源码)

Keepalived常见安装方式为YUM仓库安装与源码编译安装,两者在便捷性、可控性与适配性上差异明显。生产环境应结合系统版本、功能需求与变更策略进行选择。

原理草图:安装来源与系统关系

文章图片

YUM安装(推荐用于快速部署与标准化)#

优点:依赖自动处理、版本兼容性好、安装/升级/卸载规范化
缺点:版本受仓库限制,新特性可能缺失
适用场景:标准化环境、快速部署、批量运维

安装与验证示例(CentOS/RHEL)#

# 1) 安装
sudo yum -y install keepalived

# 2) 查看版本
keepalived -v

# 3) 查看RPM安装文件
rpm -ql keepalived | head -n 10

# 4) 示例:启用并启动
sudo systemctl enable keepalived
sudo systemctl start keepalived

# 5) 查看状态
sudo systemctl status keepalived --no-pager

命令解释
- yum install keepalived:从系统仓库安装并自动处理依赖
- keepalived -v:确认安装成功与版本
- systemctl enable/start:管理服务自启动与启动

快速卸载#

sudo yum -y remove keepalived

源码编译安装(推荐用于定制化与新特性)#

优点:可选择最新版本、定制编译参数
缺点:依赖需手动安装,维护成本高
适用场景:特定版本/特性需求、性能或功能定制

安装与验证示例(以 2.2.x 为例)#

# 1) 安装依赖
sudo yum -y install gcc make openssl-devel libnfnetlink-devel \
    net-snmp-devel ipset-devel libnl3-devel

# 2) 下载与解压
cd /usr/local/src
sudo curl -LO https://www.keepalived.org/software/keepalived-2.2.8.tar.gz
sudo tar -zxf keepalived-2.2.8.tar.gz
cd keepalived-2.2.8

# 3) 配置与编译
sudo ./configure --prefix=/usr/local/keepalived \
    --sysconfdir=/etc --with-init=systemd
sudo make -j$(nproc)
sudo make install

# 4) 验证二进制
/usr/local/keepalived/sbin/keepalived -v

命令解释
- ./configure --prefix:指定安装路径
- --sysconfdir=/etc:配置文件统一放到 /etc
- --with-init=systemd:生成 systemd 服务文件

systemd 服务示例(若未自动生成)#

# /etc/systemd/system/keepalived.service
[Unit]
Description=Keepalived
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/keepalived/sbin/keepalived -D -f /etc/keepalived/keepalived.conf
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -TERM $MAINPID

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable keepalived
sudo systemctl start keepalived

对比与选择建议(带示例)#

对比维度建议
- 版本需求:仓库版本满足 → 选YUM;需要新特性/特定版本 → 选源码
- 运维规范:追求一致性与易维护 → 选YUM;实验验证或功能测试 → 可选源码
- 安全合规:需要可控编译链与审计 → 选源码;需要快速安全更新 → 选YUM

示例决策

场景A:CentOS7,仓库版本满足且要批量部署 → YUM
场景B:需要2.2.x新特性且仓库只有2.0.x → 源码

常见安装问题与排错示例(本节简版)#

1) YUM提示无包或版本过旧#

# 查看仓库是否启用
yum repolist

# 搜索可用版本
yum list keepalived --showduplicates

处理建议:启用官方或企业仓库,或改用源码安装。

2) 源码编译报缺少库#

# 示例报错:error: openssl/ssl.h not found
sudo yum -y install openssl-devel

3) 服务启动失败#

# 查看日志
journalctl -u keepalived -xe

# 检查配置路径与权限
ls -l /etc/keepalived/keepalived.conf

练习(建议在测试机完成)#

  1. 使用YUM安装Keepalived并确认版本号。
  2. 使用源码安装到 /usr/local/keepalived,并手工创建 systemd 服务启动。
  3. 刻意移除 openssl-devel 再编译,观察报错并完成修复。