如何配置Keepalived?
Keepalived配置全攻略:从入门到高可用集群实战
在构建高可用性网络服务时,Keepalived是Linux系统管理员不可或缺的工具。本文将深入解析Keepalived的配置方法,带您逐步完成从单机部署到双机热备的完整实践过程。
一、Keepalived核心概念解析
Keepalived基于VRRP协议实现,主要通过三个核心模块工作:
- VRRP Stack:虚拟路由冗余协议实现
- IPVS wrapper:LVS负载均衡控制接口
- Checkers:服务健康检测机制
配置前请确保系统已安装ipset和iptables工具:yum install ipset iptables -y
二、详细配置步骤
1. 基础环境准备
# CentOS安装命令
yum install keepalived -y
systemctl enable keepalived
# Ubuntu安装命令
apt-get install 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 # 组ID需一致
priority 100 # 优先级(0-255)
advert_int 1 # 检测间隔(秒)
authentication {
auth_type PASS
auth_pass 1111 # 认证密码
}
virtual_ipaddress {
192.168.1.100/24 # 虚拟IP
}
}
备用节点配置
只需修改三项参数:
router_id LVS_BACKUP
state BACKUP
priority 90
3. 高级功能配置
健康检查配置示例
vrrp_script chk_nginx {
script "/usr/bin/killall -0 nginx" # 检查nginx进程
interval 2 # 每2秒检查一次
weight -20 # 失败时优先级降20
}
track_script {
chk_nginx # 引用健康检查脚本
}
邮件告警配置
global_defs {
notification_email {
admin@example.com
}
notification_email_from keepalived@example.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
}
三、配置验证与排错
1. 服务启动
systemctl start keepalived
systemctl status keepalived
2. 关键验证命令
- 查看VIP绑定:
ip addr show eth0
- 查看日志:
journalctl -u keepalived -f
- 测试故障转移:手动停止主节点keepalived服务
3. 常见问题解决
问题现象 | 解决方案 |
---|---|
VIP不切换 | 检查防火墙规则,确认VRRP协议(112)未被拦截 |
脑裂问题 | 确保网络连通性,调整advert_int参数 |
日志报认证失败 | 确认所有节点auth_pass配置一致 |
四、生产环境最佳实践
- 使用非默认的virtual_router_id(1-255)
- 为不同业务配置独立的vrrp_instance
- 结合iptables限制VRRP组播源地址
- 配置多播检测防止网络分割
- 定期测试故障转移流程
通过本文的详细指导,您应该已经掌握了Keepalived的核心配置方法。实际部署时,建议先在测试环境验证配置,再逐步应用到生产环境。Keepalived的灵活配置可以满足从简单的主备切换,到复杂的多节点负载均衡等各种高可用场景需求。