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
练习(建议在测试机完成)#
- 使用YUM安装Keepalived并确认版本号。
- 使用源码安装到
/usr/local/keepalived,并手工创建 systemd 服务启动。 - 刻意移除
openssl-devel再编译,观察报错并完成修复。