售前咨询400-838-0503

如何在Linux云服务器上配置Keepalived?

发布:2025-04-24 23:45

Linux云服务器Keepalived高可用配置全指南

作者:云架构师 | 更新时间:2023年11月15日

在当今云计算环境中,服务的高可用性(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参数,检查网络延迟
健康检查失效 验证脚本执行权限和返回值

七、最佳实践建议

  1. 生产环境建议使用奇数个节点
  2. 配合监控系统实现自动告警
  3. 定期进行故障转移演练
  4. 云环境配合SLB使用实现多层高可用

通过本文的配置指南,您可以在云服务器上快速构建高可用服务架构。实际部署时请根据业务需求调整参数,并建议在测试环境充分验证后再上线生产。

按文档操作后还是不行,把机器编号、出问题的时间点和现象截图一起提工单,能少来回一轮。

提交工单