文档首页> 常见问题> 如何配置Keepalived?

如何配置Keepalived?

发布时间:2025-05-10 07:18       

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配置一致

四、生产环境最佳实践

  1. 使用非默认的virtual_router_id(1-255)
  2. 为不同业务配置独立的vrrp_instance
  3. 结合iptables限制VRRP组播源地址
  4. 配置多播检测防止网络分割
  5. 定期测试故障转移流程

通过本文的详细指导,您应该已经掌握了Keepalived的核心配置方法。实际部署时,建议先在测试环境验证配置,再逐步应用到生产环境。Keepalived的灵活配置可以满足从简单的主备切换,到复杂的多节点负载均衡等各种高可用场景需求。