Linux云服务器Keepalived高可用配置全指南
在当今云计算环境中,服务的高可用性(HA)已成为企业级应用的基本要求。本文将详细介绍如何在Linux云服务器上配置Keepalived实现服务高可用,通过实际案例演示主备切换过程,并针对云环境提供特殊配置建议。
一、Keepalived核心原理解析
Keepalived基于VRRP(Virtual Router Redundancy Protocol)协议实现,通过虚拟IP(VIP)漂移机制确保服务持续可用。其核心组件包括:
- VRRP守护进程:管理VIP状态
- 健康检查模块:监控真实服务器状态
- 通知脚本:状态变更时触发自定义操作
二、云服务器环境准备
以CentOS 7为例的准备工作:
# 关闭SELinux(生产环境建议配置策略)
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 配置防火墙(云平台需同时配置安全组)
firewall-cmd --permanent --add-rich-rule='rule protocol value="vrrp" accept'
firewall-cmd --reload
三、详细配置步骤
1. 安装Keepalived
yum install -y keepalived
systemctl enable keepalived
2. 主服务器配置(/etc/keepalived/keepalived.conf)
global_defs {
router_id LVS_MASTER # 唯一标识
}
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 # 虚拟IP地址
}
track_script {
chk_nginx # 健康检查脚本名称
}
}
3. 备用服务器配置
修改以下参数即可:
state BACKUP
priority 90
四、云环境特殊配置
由于云平台的网络限制,需要特别注意:
- 在AWS中需禁用源/目标检查
- 阿里云需要配置VRRP组播转单播
- GCP需创建目标实例组
五、高级功能配置
1. 邮件报警配置
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server smtp.example.com
smtp_connect_timeout 30
}
2. 多VIP配置
通过多个vrrp_instance实现:
vrrp_instance VI_2 {
state BACKUP
interface eth0
virtual_router_id 52
priority 80
virtual_ipaddress {
192.168.1.101/24
}
}
六、常见问题排查
| 问题现象 | 排查方法 |
|---|---|
| VIP无法漂移 | 检查防火墙规则、VRRP通信是否正常 |
| 脑裂现象 | 配置nopreempt参数,检查网络延迟 |
| 健康检查失效 | 验证脚本执行权限和返回值 |
七、最佳实践建议
- 生产环境建议使用奇数个节点
- 配合监控系统实现自动告警
- 定期进行故障转移演练
- 云环境配合SLB使用实现多层高可用
通过本文的配置指南,您可以在云服务器上快速构建高可用服务架构。实际部署时请根据业务需求调整参数,并建议在测试环境充分验证后再上线生产。
