keepalived在物理机/私有云可直接实现vip漂移,但在公有云(如阿里云)必须配合havip使用,因云平台禁止私自宣告未绑定ip,keepalived仅负责通知状态变化,vip路由映射由云平台控制。

keepalived 能直接在 Linux 上实现虚拟 IP(VIP)漂移,但**不能绕过云厂商网络层限制**——比如阿里云的 HaVip、腾讯云的 HAVIP 或 AWS 的 ENI Secondary IP,都要求 VIP 必须先在控制台显式绑定到 ECS 实例,否则即使 keepalived 成功绑定了 IP,流量也无法到达。
所以真实部署中,你得先确认环境类型:是物理机/私有云?还是公有云(如阿里云)?二者配置逻辑完全不同。
物理机或私有云环境:直接用 keepalived 绑定 VIP
这是最标准的 VRRP 场景,keepalived 通过组播协商主备,自动在网卡上添加/删除 virtual_ipaddress。
-
interface必须填实际承载流量的物理网卡名(如ens33、eth0),不能写lo或未启用的接口 -
virtual_router_id主备必须完全一致,且取值范围是 1–255;不同 VRRP 组不能冲突 -
priority主节点设为 100+,备节点低至少 2(例如 98),差值要大于advert_int(默认 1 秒),否则可能频繁抖动 - 认证块
authentication中的auth_pass必须严格相同、长度 ≤8 字符,否则日志会报Invalid checksum - 启动后用
ip addr show dev ens33查看 VIP 是否出现在该网卡下;用tcpdump -i ens33 host 224.0.0.18确认 VRRP 报文收发正常
阿里云等公有云环境:必须配合 HaVip 使用
云平台禁止用户私自宣告非绑定 IP,所以 keepalived 的 virtual_ipaddress 必须设为已创建并绑定到本实例的 HaVip 地址(如 192.168.1.100),且该 HaVip 还需同时绑定另一台备机。
Linux AI 服务器 — 将 Linux 服务器转换为本地 AI 推理集群。使用 systemd、NVIDIA CUDA 实现无头 Linux AI,零 GUI 开销。
- HaVip 创建后,需在控制台手动绑定两台 ECS(同一交换机内),不能只绑一台
-
keepalived.conf中virtual_ipaddress只能写这个 HaVip 地址,写其他地址无效 - 主备节点的
state仍按常规设为MASTER/BACKUP,priority决定谁接管,但 VIP 生效依赖云平台监听到状态变化并更新路由映射 - 若切换失败,优先查
journalctl -u keepalived -n 30是否有Entering MASTER STATE,再确认控制台中 HaVip 关联的 ECS 是否已同步变更 - 防火墙不用开 224.0.0.18 —— 公有云通常禁用组播,
keepalived实际走的是云平台内部心跳机制,配置里加不加unicast_peer都不影响
常见启动失败或 VIP 不生效的三个硬坑
这些问题在日志里往往只有一行提示,但排查耗时最长:
-
/usr/sbin/keepalived不存在?源码安装后没建软链接,或 systemd 找不到二进制路径。检查which keepalived,必要时sudo ln -sf /usr/local/sbin/keepalived /usr/sbin/keepalived -
Cannot find program 'killall'错误?某些 minimal 系统没装psmisc包,yum install -y psmisc或apt install -y psmisc即可 - 配置文件语法错误导致服务静默退出:运行
keepalived -f /etc/keepalived/keepalived.conf -d -l前台调试模式启动,错误会直接打印在终端,比systemctl status更准
keepalived 只负责“通知”,不负责“宣告”——VIP 的路由映射权在云平台手里,它只响应状态变化。**










