HAVIP结合Keepalived实现主备多机高可用

私有网络 VPC

  • 产品定价
  • 功能发布记录
  • 产品描述
    • 相关概念
    • 产品特性
    • 使用限制
    • 产品优势
    • 产品介绍
    • 应用场景
  • 典型实践
    • Windows使用HAVIP配置主备多机
    • VPC自定义路由表实现流量安全互访
    • 配置自定义服务并使用服务网卡为其他VPC提供服务
    • 对等连接典型实践
    • 使用Terraform管理弹性网卡典型实践
    • 二层网关与专线接入ET组合构建IDC与云上VPC大二层网络
    • 网络层安全说明
    • 安全组配置实践(进阶篇)
    • HAVIP结合Keepalived实现主备多机高可用
    • 使用Keepalived在VPC实现高可用架构
    • 使用Terraform管理IPsec VPN网关典型实践
    • 安全组配置实践(入门篇)
  • 操作指南
    • 多用户访问控制
    • 子网
    • 网络拓扑
    • 使用IPv6
    • 标签管理
    • 路由表
    • VPC
    • 网卡
      • 高可用虚拟IP
      • 弹性网卡
      • 服务网卡
    • 网络诊断
      • 路径分析
      • 网关限速
      • 网络探测
      • 端口验通
      • 流量镜像
      • 流日志
    • 监控与运维
      • NAT网关实例诊断
    • 访问控制
      • ACL
      • 参数模版
      • 安全组
    • 网络连接
      • 二层网关
      • 专线网关
      • 对等连接
      • IPv6网关
      • VPN网关
        • SSL VPN网关
        • GRE VPN网关
        • IPsec VPN网关
      • NAT网关
        • 私网NAT网关
        • 公网NAT网关
  • 服务等级协议SLA
    • 服务网卡服务等级协议SLA
    • VPN网关服务等级协议SLA
    • IPv6网关服务等级协议SLA
    • 对等连接服务等级协议SLA
    • NAT网关服务等级协议SLA
  • API参考
    • 通用说明
    • 接口概览
    • API概述
    • 附录
    • 公共头和错误返回
    • 服务域名
    • API功能发布记录
    • ACL相关接口
      • 添加ACL规则
      • 更新ACL规则
      • 删除ACL规则
      • 查询ACL规则
      • 查询ACL
    • IPv6网关相关接口
      • IPv6网关带宽升降级
      • 创建IPv6网关
      • 更新IPv6网关限速策略
      • 删除Ipv6网关
      • 更新IPv6网关释放保护开关
      • 查询IPv6网关限速策略列表
      • 创建IPv6网关限速策略
      • 添加IPv6只出不进策略
      • 删除IPv6只出不进策略
      • 查询IPv6只出不进策略列表
      • 查询IPv6网关
      • 删除IPv6网关限速策略
    • 弹性网卡相关接口
      • 删除弹性网卡
      • 批量删除弹性网卡内网IP
      • 弹性网卡更新企业安全组
      • 创建弹性网卡
      • 弹性网卡卸载云产品实例
      • 删除弹性网卡辅助IP
      • 弹性网卡绑定EIP
      • 查询弹性网卡列表
      • 增加弹性网卡辅助IP
      • 弹性网卡更新普通安全组
      • 批量增加弹性网卡内网IP
      • 查询弹性网卡状态
      • 更新弹性网卡
      • 弹性网卡挂载云产品实例
      • 弹性网卡解绑EIP
      • 查询指定的弹性网卡
    • 参数模板相关接口
      • 创建IP地址族
      • 更新IP地址组
      • 查询指定的IP地址组
      • 更新IP地址族
      • 创建IP地址组
      • 查询IP地址族列表
      • 查询指定的IP地址族
      • IP地址组删除IP地址
      • IP地址组添加IP地址
      • 删除IP地址族
      • IP地址族移除IP地址组
      • 查询IP地址组列表
      • 删除IP地址组
      • IP地址族添加IP地址组
    • 子网相关接口
      • 更新子网
      • 创建预留网段
      • 查询预留网段列表
      • 删除预留网段
      • 查询指定子网
      • 创建子网
      • 查询子网列表
      • 删除子网
    • VPC相关接口
      • 关闭VPC中继
      • 删除VPC
      • 查询指定VPC
      • 创建VPC
      • 查询VPC列表
      • 查询VPC内产品占用IP
      • 开启VPC中继
      • 查询VPC内网IP
      • 更新VPC
    • 网关限速规则相关接口
      • 查看网关限速规则
      • 修改网关限速规则
      • 创建网关限速规则
      • 删除网关限速规则
    • 对等连接相关接口
      • 释放对等连接
      • 关闭对等连接同步DNS
      • 处理对等连接申请
      • 更新对等连接释放保护开关
      • 对等连接续费
      • 查看对等连接详情
      • 创建对等连接
      • 查询对等连接列表
      • 开启对等连接同步DNS
      • 对等连接带宽升降级
      • 更新对等连接本端接口名称和备注
    • 路由表相关接口
      • 查询路由规则
      • 删除路由规则
      • 主备切换
      • 创建路由规则
      • 更新路由规则
      • 查询路由表
    • VPN相关接口
      • VPN网关续费
      • 解绑EIP
      • 更新SSL-VPN用户
      • 删除VPN隧道
      • 查询VPN隧道
      • 删除SSL-VPN用户
      • 绑定EIP
      • 批量创建SSL-VPN用户
      • 更新VPN
      • 查询SSL-VPN用户
      • 删除SSL-VPN服务端
      • 释放VPN
      • 查询SSL-VPN服务端
      • 查询VPN列表
      • 更新SSL-VPN服务端
      • 更新VPN隧道
      • 创建VPN
      • 创建VPN隧道
      • 创建SSL-VPN服务端
      • 更新VPN释放保护开关
      • 查询VPN详情
    • 网络探测相关接口
      • 删除网络探测
      • 创建网络探测
      • 查询网络探测列表
      • 更新网络探测
      • 查询网络探测详情
    • NAT网关相关接口
      • 更新SNAT规则
      • 删除SNAT规则
      • 更新NAT网关名称
      • 查询NAT网关详情
      • 释放NAT网关
      • NAT网关解绑EIP
      • NAT网关绑定DNAT EIP
      • 创建SNAT规则
      • 创建DNAT规则
      • 更新DNAT规则
      • 更新NAT释放保护开关
      • NAT网关解绑DNAT EIP
      • 查询NAT网关列表
      • 删除DNAT规则
      • NAT网关绑定EIP
      • 查询SNAT规则
      • NAT网关绑定SNAT EIP
      • NAT网关续费
      • 批量创建DNAT规则
      • 批量创建SNAT规则
      • NAT网关变配
      • 查询DNAT规则
      • NAT网关解绑SNAT EIP
      • 创建NAT网关
    • 高可用虚拟IP相关接口
      • 高可用虚拟IP解绑EIP
      • 删除高可用虚拟IP
      • 高可用虚拟IP解绑实例
      • 高可用虚拟IP绑定EIP
      • 更新高可用虚拟IP
      • 查询指定的高可用虚拟IP
      • 创建高可用虚拟IP
      • 高可用虚拟IP绑定实例
      • 查询高可用虚拟IP列表
    • 服务网卡相关接口
      • 查询可挂载的公共服务
      • 查询服务网卡详情
      • 更新服务网卡
      • 查询服务网卡列表
      • 服务网卡更新企业安全组
      • 删除服务网卡
      • 服务网卡更新普通安全组
      • 创建服务网卡
    • 专线网关相关接口
      • 解绑物理专线
      • 创建专线网关
      • 绑定物理专线
      • 查询专线网关列表
      • 创建专线网关健康检查
      • 释放专线网关
      • 更新专线网关
      • 查询专线网关详情
    • 安全组相关接口
      • 普通安全组
        • 更新普通安全组规则
        • 删除普通安全组规则
        • 删除普通安全组
        • 授权普通安全组规则
        • 撤销普通安全组规则
        • 创建普通安全组
        • 查询普通安全组列表
        • 查看安全组详情
      • 企业安全组
        • 更新企业安全组规则
        • 创建企业安全组
        • 删除企业安全组规则
        • 授权企业安全组规则
        • 删除企业安全组
        • 查询企业安全组列表
  • 常见问题
    • 服务网卡常见问题
    • 路由表常见问题
    • VPC常见问题
    • NAT常见问题
    • 常见问题总览
    • VPN常见问题
  • VPC CLI
    • 路由表相关操作
    • VPC相关操作
    • 版本变更记录
    • 通过CLI使用VPC服务
    • 安装BCE-CLI
    • 配置BCE-CLI
    • 子网相关操作
  • SDK
    • Python-SDK
      • 企业安全组
      • VPN
      • 子网
      • ACL
      • IPv6Gateway
      • 高可用虚拟IP
      • 网络探测
      • 路由
      • 专线网关
      • 弹性网卡
      • VPC
      • 对等连接
      • 版本说明
      • NAT
      • 安装SDK工具包
      • 服务网卡
      • 安全组
      • 概述
    • Java-SDK
      • 企业安全组
      • VPN
      • 子网
      • ACL
      • 参数模版
      • 高可用虚拟IP
      • 网络探测
      • 专线网关
      • 弹性网卡
      • vpc
      • 对等连接
      • 版本说明
      • IPv6网关
      • NAT
      • 普通安全组
      • 安装SDK工具包
      • 服务网卡
      • Route
      • 概述
    • Go-SDK
      • VPN
      • 子网
      • 异常处理
      • ACL
      • IPv6Gateway
      • 高可用虚拟IP
      • 网络探测
      • 路由
      • 专线网关
      • 弹性网卡
      • VPC
      • 对等连接
      • 初始化
      • NAT
      • 安装SDK工具包
      • 服务网卡
      • 概述
      • 安全组
        • 企业安全组
        • 普通安全组
    • PHP-SDK
      • ACL
      • vpc
      • 对等连接
      • 版本说明
      • Subnet
      • NAT
      • 安装SDK工具包
      • Route
      • 安全组
      • 概述
所有文档
menu
没有找到结果,请重新输入

私有网络 VPC

  • 产品定价
  • 功能发布记录
  • 产品描述
    • 相关概念
    • 产品特性
    • 使用限制
    • 产品优势
    • 产品介绍
    • 应用场景
  • 典型实践
    • Windows使用HAVIP配置主备多机
    • VPC自定义路由表实现流量安全互访
    • 配置自定义服务并使用服务网卡为其他VPC提供服务
    • 对等连接典型实践
    • 使用Terraform管理弹性网卡典型实践
    • 二层网关与专线接入ET组合构建IDC与云上VPC大二层网络
    • 网络层安全说明
    • 安全组配置实践(进阶篇)
    • HAVIP结合Keepalived实现主备多机高可用
    • 使用Keepalived在VPC实现高可用架构
    • 使用Terraform管理IPsec VPN网关典型实践
    • 安全组配置实践(入门篇)
  • 操作指南
    • 多用户访问控制
    • 子网
    • 网络拓扑
    • 使用IPv6
    • 标签管理
    • 路由表
    • VPC
    • 网卡
      • 高可用虚拟IP
      • 弹性网卡
      • 服务网卡
    • 网络诊断
      • 路径分析
      • 网关限速
      • 网络探测
      • 端口验通
      • 流量镜像
      • 流日志
    • 监控与运维
      • NAT网关实例诊断
    • 访问控制
      • ACL
      • 参数模版
      • 安全组
    • 网络连接
      • 二层网关
      • 专线网关
      • 对等连接
      • IPv6网关
      • VPN网关
        • SSL VPN网关
        • GRE VPN网关
        • IPsec VPN网关
      • NAT网关
        • 私网NAT网关
        • 公网NAT网关
  • 服务等级协议SLA
    • 服务网卡服务等级协议SLA
    • VPN网关服务等级协议SLA
    • IPv6网关服务等级协议SLA
    • 对等连接服务等级协议SLA
    • NAT网关服务等级协议SLA
  • API参考
    • 通用说明
    • 接口概览
    • API概述
    • 附录
    • 公共头和错误返回
    • 服务域名
    • API功能发布记录
    • ACL相关接口
      • 添加ACL规则
      • 更新ACL规则
      • 删除ACL规则
      • 查询ACL规则
      • 查询ACL
    • IPv6网关相关接口
      • IPv6网关带宽升降级
      • 创建IPv6网关
      • 更新IPv6网关限速策略
      • 删除Ipv6网关
      • 更新IPv6网关释放保护开关
      • 查询IPv6网关限速策略列表
      • 创建IPv6网关限速策略
      • 添加IPv6只出不进策略
      • 删除IPv6只出不进策略
      • 查询IPv6只出不进策略列表
      • 查询IPv6网关
      • 删除IPv6网关限速策略
    • 弹性网卡相关接口
      • 删除弹性网卡
      • 批量删除弹性网卡内网IP
      • 弹性网卡更新企业安全组
      • 创建弹性网卡
      • 弹性网卡卸载云产品实例
      • 删除弹性网卡辅助IP
      • 弹性网卡绑定EIP
      • 查询弹性网卡列表
      • 增加弹性网卡辅助IP
      • 弹性网卡更新普通安全组
      • 批量增加弹性网卡内网IP
      • 查询弹性网卡状态
      • 更新弹性网卡
      • 弹性网卡挂载云产品实例
      • 弹性网卡解绑EIP
      • 查询指定的弹性网卡
    • 参数模板相关接口
      • 创建IP地址族
      • 更新IP地址组
      • 查询指定的IP地址组
      • 更新IP地址族
      • 创建IP地址组
      • 查询IP地址族列表
      • 查询指定的IP地址族
      • IP地址组删除IP地址
      • IP地址组添加IP地址
      • 删除IP地址族
      • IP地址族移除IP地址组
      • 查询IP地址组列表
      • 删除IP地址组
      • IP地址族添加IP地址组
    • 子网相关接口
      • 更新子网
      • 创建预留网段
      • 查询预留网段列表
      • 删除预留网段
      • 查询指定子网
      • 创建子网
      • 查询子网列表
      • 删除子网
    • VPC相关接口
      • 关闭VPC中继
      • 删除VPC
      • 查询指定VPC
      • 创建VPC
      • 查询VPC列表
      • 查询VPC内产品占用IP
      • 开启VPC中继
      • 查询VPC内网IP
      • 更新VPC
    • 网关限速规则相关接口
      • 查看网关限速规则
      • 修改网关限速规则
      • 创建网关限速规则
      • 删除网关限速规则
    • 对等连接相关接口
      • 释放对等连接
      • 关闭对等连接同步DNS
      • 处理对等连接申请
      • 更新对等连接释放保护开关
      • 对等连接续费
      • 查看对等连接详情
      • 创建对等连接
      • 查询对等连接列表
      • 开启对等连接同步DNS
      • 对等连接带宽升降级
      • 更新对等连接本端接口名称和备注
    • 路由表相关接口
      • 查询路由规则
      • 删除路由规则
      • 主备切换
      • 创建路由规则
      • 更新路由规则
      • 查询路由表
    • VPN相关接口
      • VPN网关续费
      • 解绑EIP
      • 更新SSL-VPN用户
      • 删除VPN隧道
      • 查询VPN隧道
      • 删除SSL-VPN用户
      • 绑定EIP
      • 批量创建SSL-VPN用户
      • 更新VPN
      • 查询SSL-VPN用户
      • 删除SSL-VPN服务端
      • 释放VPN
      • 查询SSL-VPN服务端
      • 查询VPN列表
      • 更新SSL-VPN服务端
      • 更新VPN隧道
      • 创建VPN
      • 创建VPN隧道
      • 创建SSL-VPN服务端
      • 更新VPN释放保护开关
      • 查询VPN详情
    • 网络探测相关接口
      • 删除网络探测
      • 创建网络探测
      • 查询网络探测列表
      • 更新网络探测
      • 查询网络探测详情
    • NAT网关相关接口
      • 更新SNAT规则
      • 删除SNAT规则
      • 更新NAT网关名称
      • 查询NAT网关详情
      • 释放NAT网关
      • NAT网关解绑EIP
      • NAT网关绑定DNAT EIP
      • 创建SNAT规则
      • 创建DNAT规则
      • 更新DNAT规则
      • 更新NAT释放保护开关
      • NAT网关解绑DNAT EIP
      • 查询NAT网关列表
      • 删除DNAT规则
      • NAT网关绑定EIP
      • 查询SNAT规则
      • NAT网关绑定SNAT EIP
      • NAT网关续费
      • 批量创建DNAT规则
      • 批量创建SNAT规则
      • NAT网关变配
      • 查询DNAT规则
      • NAT网关解绑SNAT EIP
      • 创建NAT网关
    • 高可用虚拟IP相关接口
      • 高可用虚拟IP解绑EIP
      • 删除高可用虚拟IP
      • 高可用虚拟IP解绑实例
      • 高可用虚拟IP绑定EIP
      • 更新高可用虚拟IP
      • 查询指定的高可用虚拟IP
      • 创建高可用虚拟IP
      • 高可用虚拟IP绑定实例
      • 查询高可用虚拟IP列表
    • 服务网卡相关接口
      • 查询可挂载的公共服务
      • 查询服务网卡详情
      • 更新服务网卡
      • 查询服务网卡列表
      • 服务网卡更新企业安全组
      • 删除服务网卡
      • 服务网卡更新普通安全组
      • 创建服务网卡
    • 专线网关相关接口
      • 解绑物理专线
      • 创建专线网关
      • 绑定物理专线
      • 查询专线网关列表
      • 创建专线网关健康检查
      • 释放专线网关
      • 更新专线网关
      • 查询专线网关详情
    • 安全组相关接口
      • 普通安全组
        • 更新普通安全组规则
        • 删除普通安全组规则
        • 删除普通安全组
        • 授权普通安全组规则
        • 撤销普通安全组规则
        • 创建普通安全组
        • 查询普通安全组列表
        • 查看安全组详情
      • 企业安全组
        • 更新企业安全组规则
        • 创建企业安全组
        • 删除企业安全组规则
        • 授权企业安全组规则
        • 删除企业安全组
        • 查询企业安全组列表
  • 常见问题
    • 服务网卡常见问题
    • 路由表常见问题
    • VPC常见问题
    • NAT常见问题
    • 常见问题总览
    • VPN常见问题
  • VPC CLI
    • 路由表相关操作
    • VPC相关操作
    • 版本变更记录
    • 通过CLI使用VPC服务
    • 安装BCE-CLI
    • 配置BCE-CLI
    • 子网相关操作
  • SDK
    • Python-SDK
      • 企业安全组
      • VPN
      • 子网
      • ACL
      • IPv6Gateway
      • 高可用虚拟IP
      • 网络探测
      • 路由
      • 专线网关
      • 弹性网卡
      • VPC
      • 对等连接
      • 版本说明
      • NAT
      • 安装SDK工具包
      • 服务网卡
      • 安全组
      • 概述
    • Java-SDK
      • 企业安全组
      • VPN
      • 子网
      • ACL
      • 参数模版
      • 高可用虚拟IP
      • 网络探测
      • 专线网关
      • 弹性网卡
      • vpc
      • 对等连接
      • 版本说明
      • IPv6网关
      • NAT
      • 普通安全组
      • 安装SDK工具包
      • 服务网卡
      • Route
      • 概述
    • Go-SDK
      • VPN
      • 子网
      • 异常处理
      • ACL
      • IPv6Gateway
      • 高可用虚拟IP
      • 网络探测
      • 路由
      • 专线网关
      • 弹性网卡
      • VPC
      • 对等连接
      • 初始化
      • NAT
      • 安装SDK工具包
      • 服务网卡
      • 概述
      • 安全组
        • 企业安全组
        • 普通安全组
    • PHP-SDK
      • ACL
      • vpc
      • 对等连接
      • 版本说明
      • Subnet
      • NAT
      • 安装SDK工具包
      • Route
      • 安全组
      • 概述
  • 文档中心
  • arrow
  • 私有网络VPC
  • arrow
  • 典型实践
  • arrow
  • HAVIP结合Keepalived实现主备多机高可用
本页目录
  • 概览
  • 方案概述
  • 配置步骤
  • 步骤一:创建HAVIP
  • 步骤二:在主备服务器上安装Keepalived
  • 步骤三:配置Keepalived绑定HAVIP到主备服务器
  • 步骤四:HAVIP绑定EIP(可选)
  • 步骤五:测试验证
  • 相关产品

HAVIP结合Keepalived实现主备多机高可用

更新时间:2025-08-22

概览

通过高可用虚拟IP(High-Availability Virtual IP Address,简称HAVIP)和Keepalived配合使用,实现主备集群的搭建,默认主集群承接客户端访问流量。当主集群发生故障时,备集群会自动接管主集群的服务,实现业务高可用。

方案概述

本文以下图场景为例,创建四台BCC实例和一个HAVIP,BCC内网IP分别为192.168.0.2,192.168.1.2,192.168.2.2,192.168.0.5,HAVIP内网IP为192.168.2.3。通过Keepalived使得192.168.0.2为主服务器,192.168.1.2和192.168.2.2为备服务器,模拟客户端(192.168.0.5)去访问HAVIP(192.168.2.3)。

image.png

配置步骤

步骤一:创建HAVIP

1.选择“产品服务>私有网络 VPC”,在左侧导航栏选择“网卡>高可用虚拟IP”。

2.点击“创建虚拟IP”,出现创建虚拟IP弹框。填写下列配置信息:

配置项 说明
虚拟IP名称 用户自定义HAVIP名称
所在网络 选择待创建 HAVIP所在的私有网络
所在子网 HAVIP具有子网属性,请下拉选择当前VPC下的子网
IP地址 默认选择自动分配IP地址,支持输入指定IP,该IP要求未被占用
描述 编辑HAVIP相关描述信息

3.点击“确定”,高可用虚拟IP创建完成。

image.png

步骤二:在主备服务器上安装Keepalived

1.登录 云服务器BCC 控制台进入实例页面,点击“创建实例”,填写配置信息后完成BCC创建。具体操作请参见创建实例导航。

2.登录云服务器实例。具体操作请参见登录方式概述。

3.在主服务器和备服务器上搭建Keepalived,使用 yum 方式安装软件包。

Plain Text
1# yum install keepalived -y

步骤三:配置Keepalived绑定HAVIP到主备服务器

1.登录 高可用虚拟IP 控制台,点击实例名称进入详情页面,在左侧导航栏选择绑定服务器后进入后端服务器列表,点击“添加后端服务器”选择需要绑定的云服务器。

image.png

2.登录主服务器,执行vim /etc/keepalived/keepalived.conf,修改相关配置。

Plain Text
1     global_defs {
2         notification_email {
3           acassen@firewall.loc
4           failover@firewall.loc
5           sysadmin@firewall.loc
6         }
7         notification_email_from Alexandre.Cassen@firewall.loc
8         smtp_server 192.168.200.1   
9         smtp_connect_timeout 30
10         router_id LVS_DEVEL
11         vrrp_skip_check_adv_addr
12         vrrp_garp_interval 0
13         vrrp_gna_interval 0
14      }
15      vrrp_script checkService
16      {
17           script "/etc/keepalived/check_status.sh"   # 检测业务进程是否运行正常。其中"check_status.sh"文件为用户自定义的业务进程检测脚本,请根据业务需要来执行,执行时"check_status.sh"更换为实际的脚本名称。
18           interval 1
19      }
20      vrrp_instance VI_1 {
21          state MASTER            # 设置初始状态为"主"
22          interface eth0          # 设置绑定 VIP 的网卡,例如 eth0  
23          virtual_router_id 51    # 配置集群 virtual_router_id 值
24          nopreempt               # 设置非抢占模式,  
25          priority 100            # 优先级值越大,优先级越高,优先级范围为1—254
26          advert_int 1            # #通告发送间隔, 默认为1。
27          authentication {
28              auth_type PASS
29              auth_pass 1111
30          }
31          unicast_src_ip 192.168.0.2  # 设置本机内网IP地址
32          unicast_peer {
33              192.168.1.2            
34              192.168.2.2   # 高可用虚拟VIP绑定的其它对端设备的内网IP地址
35          }
36          virtual_ipaddress {
37              192.168.2.3            # 设置高可用虚拟VIP
38          }
39          notify_master "/etc/keepalived/notify_action.sh MASTER"
40          notify_backup "/etc/keepalived/notify_action.sh BACKUP"
41          notify_fault "/etc/keepalived/notify_action.sh FAULT"
42          notify_stop "/etc/keepalived/notify_action.sh STOP"
43          garp_master_refresh 5      # 设置主节点发送 ARP 报文的时间间隔
44          garp_master_delay 1        # 设置当切为主状态后多久更新 ARP 缓存    
45          track_interface {
46              eth0                  # 使用绑定 VIP 的网卡 例如 eth0
47          }
48          track_script {
49              checkService
50          }
51      }

3.登录备服务器1,执行vim /etc/keepalived/keepalived.conf,修改相关配置。

Plain Text
1     global_defs {
2         notification_email {
3           acassen@firewall.loc
4           failover@firewall.loc
5           sysadmin@firewall.loc
6         }
7         notification_email_from Alexandre.Cassen@firewall.loc
8         smtp_server 192.168.200.1   
9         smtp_connect_timeout 30
10         router_id LVS_DEVEL
11         vrrp_skip_check_adv_addr
12         vrrp_garp_interval 0
13         vrrp_gna_interval 0
14      }
15      vrrp_script checkService
16      {
17           script "/etc/keepalived/check_status.sh"   # 检测业务进程是否运行正常。其中"check_status.sh"文件为用户自定义的业务进程检测脚本,请根据业务需要来执行,执行时"check_status.sh"更换为实际的脚本名称。
18           interval 1
19      }
20      vrrp_instance VI_1 {
21          state BACKUP            # 设置初始状态为"备"
22          interface eth0          # 设置绑定 VIP 的网卡 例如 eth0  
23          virtual_router_id 51    # 配置集群 virtual_router_id 值
24          nopreempt               # 设置非抢占模式,  
25          priority 100            # 优先级值越大,优先级越高,优先级范围为1—254
26          advert_int 1            # #通告发送间隔, 默认为1。
27          authentication {
28              auth_type PASS
29              auth_pass 1111
30          }
31          unicast_src_ip 192.168.1.2  # 设置本机内网IP地址
32          unicast_peer {
33              192.168.0.2 
34              192.168.2.2   # 高可用虚拟VIP绑定的其它对端设备的内网IP地址
35          }
36          virtual_ipaddress {
37              192.168.2.3           # 设置高可用虚拟VIP
38          }
39          notify_master "/etc/keepalived/notify_action.sh MASTER"
40          notify_backup "/etc/keepalived/notify_action.sh BACKUP"
41          notify_fault "/etc/keepalived/notify_action.sh FAULT"
42          notify_stop "/etc/keepalived/notify_action.sh STOP"
43          garp_master_refresh 5      # 设置主节点发送 ARP 报文的时间间隔
44          garp_master_delay 1        # 设置当切为主状态后多久更新 ARP 缓存    
45          track_interface {
46              eth0                  # 使用绑定 VIP 的网卡 例如 eth0
47          }
48          track_script {
49              checkService
50          }
51      }

4.登录备服务器2,执行vim /etc/keepalived/keepalived.conf,修改相关配置。

Plain Text
1     global_defs {
2         notification_email {
3           acassen@firewall.loc
4           failover@firewall.loc
5           sysadmin@firewall.loc
6         }
7         notification_email_from Alexandre.Cassen@firewall.loc
8         smtp_server 192.168.200.1   
9         smtp_connect_timeout 30
10         router_id LVS_DEVEL
11         vrrp_skip_check_adv_addr
12         vrrp_garp_interval 0
13         vrrp_gna_interval 0
14      }
15      vrrp_script checkService
16      {
17           script "/etc/keepalived/check_status.sh"   # 检测业务进程是否运行正常。其中"check_status.sh"文件为用户自定义的业务进程检测脚本,请根据业务需要来执行,执行时"check_status.sh"更换为实际的脚本名称。
18           interval 1
19      }
20      vrrp_instance VI_1 {
21          state BACKUP            # 设置初始状态为"备"
22          interface eth0          # 设置绑定 VIP 的网卡 例如 eth0  
23          virtual_router_id 51    # 配置集群 virtual_router_id 值
24          nopreempt               # 设置非抢占模式,  
25          priority 100            # 优先级值越大,优先级越高,优先级范围为1—254
26          advert_int 1            # #通告发送间隔, 默认为1。
27          authentication {
28              auth_type PASS
29              auth_pass 1111
30          }
31          unicast_src_ip 192.168.2.2  # 设置本机内网IP地址
32          unicast_peer {
33              192.168.0.2 
34              192.168.1.2   # 高可用虚拟VIP绑定的其它对端设备的内网IP地址
35          }
36          virtual_ipaddress {
37              192.168.2.3           # 设置高可用虚拟VIP
38          }
39          notify_master "/etc/keepalived/notify_action.sh MASTER"
40          notify_backup "/etc/keepalived/notify_action.sh BACKUP"
41          notify_fault "/etc/keepalived/notify_action.sh FAULT"
42          notify_stop "/etc/keepalived/notify_action.sh STOP"
43          garp_master_refresh 5      # 设置主节点发送 ARP 报文的时间间隔
44          garp_master_delay 1        # 设置当切为主状态后多久更新 ARP 缓存    
45          track_interface {
46              eth0                  # 使用绑定 VIP 的网卡 例如 eth0
47          }
48          track_script {
49              checkService
50          }
51      }

5.检查业务check_status.sh,您可以根据自己的业务编写正确的脚本内容,调整脚本路径,同步更新keepalived.conf配置。这里通过/tmp/down文件是否存在来判断服务是否正常,如果不存在/tmp/down文件,认为服务正常返回0,否则返回1认为服务异常,通知Keepalived切主。脚本内容和权限(755及以上)如下:

image (1).png

/etc/keepalived/check_status.sh

Plain Text
1#!/bin/sh
2if [ ! -f /tmp/down ]
3then
4    exit 0
5fi
6exit 1

6.重启 keepalived 进程使配置生效。

Plain Text
1    systemctl start keepalived
2    systemctl restart keepalived
3    systemctl status keepalived

7.登录 高可用虚拟IP 控制台,能够看到HAVIP绑定的主服务器(192.168.0.2)、备服务器1(192.168.1.2)、备服务器2(192.168.2.2),如下图所示。

image.png

步骤四:HAVIP绑定EIP(可选)

1.登录 高可用虚拟IP 控制台,点击步骤1中创建的HAVIP操作中的绑定。

image.png

  1. 在弹出的弹性公网IP绑定弹框中选择待绑定的EIP,并单击确定。如果没有可用的EIP,可点击右上角的创建公网IP进行申请。

步骤五:测试验证

  1. 根据Keepalived配置文件启动后,服务器(192.168.0.2)为主(state=MASTER,priority 100,检查虚机是否正常周期为1s);
  2. 模拟客户端(192.168.0.5)持续ping HAVIP:ping 192.168.2.3 -i 0.001

image (2).png

  1. 在主服务器(192.168.0.2)上,/tmp目录下创建down文件,通过Keepalived周期任务检查是否存在/tmp/down来模拟业务异常,从而切换HAVIP;

image (3).png

  1. 在备服务器1(192.168.1.2)、备服务器2(192.168.2.2)上抓HAVIP的免费ARP包、ICMP包。
  • 服务器(192.168.2.2) 切为主,可以看到发送免费ARP的时间。

image (4).png

  • 服务器(192.168.2.2) 切流完成,可以收到ICMP报文的时间。

image (5).png

5.完成主备切换后,在控制台可以看到绑定主机已经切换为云服务器(192.168.2.2)。

相关产品

云服务器BCC、弹性公网IP、私有网络VPC

上一篇
安全组配置实践(进阶篇)
下一篇
使用Keepalived在VPC实现高可用架构