云服务器Keepalived高可用配置全攻略
一、什么是Keepalived?
Keepalived是一个基于VRRP协议的高可用性解决方案,主要用于实现服务故障转移。在云服务器环境中,它可以确保当主服务器发生故障时,备用服务器能够自动接管服务,实现业务不中断。
核心功能:
- 实现IP地址的自动漂移
- 服务健康检查
- 多节点故障转移
二、云服务器配置前的准备工作
在开始配置Keepalived前,需要确保您的云服务器环境满足以下条件:
- 至少两台相同配置的云服务器(建议同区域部署)
- 已配置好需要高可用的服务(如Nginx、MySQL等)
- 确保服务器之间网络互通
- 开放VRRP协议通信(通常使用IP协议号112)
注意:不同云厂商可能需要额外配置安全组规则,允许VRRP协议通信。
三、详细配置步骤
1. 安装Keepalived
在CentOS/RHEL系统上执行:
yum install keepalived -y
在Ubuntu/Debian系统上执行:
apt-get install keepalived -y
2. 主服务器配置
编辑/etc/keepalived/keepalived.conf文件:
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100/24 dev eth0
}
}
3. 备用服务器配置
备用服务器的配置与主服务器类似,主要区别在于:
- state 设置为 BACKUP
- priority 设置为比主服务器低的值(如90)
四、高级配置技巧
1. 服务健康检查
可以配置Keepalived监控特定服务,当服务异常时触发故障转移:
vrrp_script chk_nginx {
script "/usr/bin/killall -0 nginx"
interval 2
weight -5
fall 2
rise 1
}
2. 多VIP配置
一个Keepalived实例可以管理多个虚拟IP:
virtual_ipaddress {
192.168.1.100/24 dev eth0
192.168.1.101/24 dev eth0
}
五、常见问题排查
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| VIP不漂移 | 防火墙阻止VRRP通信 | 检查防火墙和云平台安全组设置 |
| 频繁主备切换 | 网络抖动或健康检查配置不合理 | 调整advert_int和健康检查参数 |
| 服务中断 | ARP缓存问题 | 配置virtual_ipaddress时添加nopreempt参数 |
六、云平台特殊注意事项
在阿里云、腾讯云等公有云平台上配置Keepalived时需要注意:
- 部分云平台需要申请高可用虚拟IP(HAVIP)
- 云平台可能会过滤VRRP多播包,需要改用单播模式
- 配置单播模式的示例:
unicast_peer {
192.168.1.2 # 对端服务器IP
}
通过本文的详细指导,您应该已经掌握了在云服务器上配置Keepalived实现高可用的完整方法。实际部署时,建议先在测试环境验证配置,再应用到生产环境。合理配置的Keepalived可以显著提升云服务的可靠性,是构建高可用架构的重要组件。
扩展资源
- Keepalived官方文档:https://www.keepalived.org/documentation.html
- 云平台HAVIP申请指南(阿里云)
- Keepalived与Nginx/LVS集成配置
