在现代 IT 架构中,服务的高可用性(High Availability, HA)至关重要。本文将详细介绍如何在 Ubuntu 系统上使用 Keepalived 实现高可用配置,即使你是 Linux 新手,也能轻松完成部署。
什么是 Keepalived?
Keepalived 是一个基于 VRRP(Virtual Router Redundancy Protocol)协议的开源软件,用于实现服务器之间的故障转移和负载均衡。通过 Keepalived,我们可以构建一个双机热备架构:当主服务器宕机时,备用服务器会自动接管虚拟 IP(VIP),确保服务不中断。

实验环境准备
两台 Ubuntu 22.04 服务器(可使用虚拟机) 主节点 IP:192.168.1.10 备节点 IP:192.168.1.11 虚拟 IP(VIP):192.168.1.100(对外提供服务的浮动 IP) 两台服务器需能互相通信,且关闭防火墙或开放 VRRP 协议端口(通常为协议号 112)第一步:安装 Keepalived
在两台 Ubuntu 服务器上分别执行以下命令安装 Keepalived:
sudo apt updatesudo apt install keepalived -y
第二步:配置 Keepalived(主节点)
编辑主节点的配置文件
/etc/keepalived/keepalived.conf:
sudo nano /etc/keepalived/keepalived.conf
输入以下内容(注意替换 interface 为你实际的网卡名,如 eth0、ens33 等):
global_defs { router_id ubuntu_master}vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 192.168.1.100/24 }}
第三步:配置 Keepalived(备节点)
在备节点上同样编辑
/etc/keepalived/keepalived.conf文件:
global_defs { router_id ubuntu_backup}vrrp_instance VI_1 { state BACKUP interface ens33 virtual_router_id 51 priority 90 advert_int 1 authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 192.168.1.100/24 }}
注意: 主备节点的virtual_router_id和auth_pass必须一致,否则无法组成高可用组。
第四步:启动并启用 Keepalived 服务
在两台服务器上分别执行:
sudo systemctl start keepalivedsudo systemctl enable keepalived
第五步:验证高可用效果
1. 在主节点上查看 VIP 是否绑定:
ip addr show ens33
你应该能看到
192.168.1.100出现在主节点的网卡上。
2. 停止主节点的 Keepalived 服务:
sudo systemctl stop keepalived
此时再在备节点执行
ip addr show ens33,你会发现 VIP 已自动漂移到备节点!
3. 重新启动主节点的 Keepalived,VIP 又会切回主节点(因为主节点优先级更高)。
常见问题排查
防火墙阻止 VRRP 包:确保两台服务器之间允许协议号 112(VRRP)通信。 网卡名称错误:使用ip a命令确认正确的网卡名(如 ens33、eth0)。 日志查看:使用
journalctl -u keepalived -f实时查看 Keepalived 日志。
总结
通过本教程,你已经成功在 Ubuntu 上完成了 Keepalived 高可用配置,实现了双机热备功能。这种架构广泛应用于 Web 服务器、数据库、API 网关等关键服务,是构建 Linux 高可用集群 的基础技能。掌握 Keepalived 安装与配置,将大大提升你运维系统的稳定性与可靠性。
赶快动手试试吧!如有疑问,欢迎在评论区交流。
