全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

HaVip结合keepalived实现主备双机高可用

最近更新时间:2023-05-09 21:40:37

本文主要介绍使用HaVip和keepalived搭建主备双机的过程,当主机发生故障时,备机仍能支持业务,从而实现业务高可用。

步骤一:创建HaVip

  1. 登录控制台
  2. 在左侧导航栏,单击高可用虚拟IP。
  3. 选择要创建HaVip的地域。
  4. 点击创建高可用虚拟IP,在弹出框中根据以下信息配置HaVip,然后单击确定。
  • 虚拟私有网络:选择HaVip所属网络。
  • 绑定类型:选择HaVip要绑定的子网类型。
  • 子网:选择绑定虚拟私有网络下的子网。
  • 私网IP:选择是否自动分配私网IP地址。

步骤二:在主备KEC实例上安装keepalived

本文以 CentOS为操作系统的服务器为例提供keepalived的安装方法。

  1. 登录KEC1实例。执行以下命令,安装keepalived。
yum install keepalived
  1. 编辑keepalived配置文件。

a. 执行以下命令,编辑keepalived.conf文件。

vim /etc/keepalived/keepalived.conf    

b.执行命令“i”,进入输入模式。

c.修改keepalived配置文件如下:

! Configuration File for keepalived
global_defs {
 notification_email {
   acassen@firewall.loc
   failover@firewall.loc
   sysadmin@firewall.loc
 }
 notification_email_from Alexandre.Cassen@firewall.loc
 smtp_server 192.168.200.1  
 smtp_connect_timeout 30
 router_id LVS_DEVEL
 vrrp_skip_check_adv_addr
 vrrp_garp_interval 0
 vrrp_gna_interval 0
}
vrrp_script checkhaproxy
{
   script "/etc/keepalived/do_sth.sh"   # 检测业务进程是否运行正常。其中“do_sth.sh”文件为用户自定义的业务进程检测脚本,请根据业务需要来执行,执行时“do_sth.sh”更换为实际的脚本名称。
   interval 5
}
vrrp_instance VI_1 {
# 注意主备参数选择
state BACKUP              # 设置初始状态均为“备“
  interface eth0          # 设置绑定 VIP 的网卡 例如 eth0 
  virtual_router_id 51    # 配置集群 virtual_router_id 值
  nopreempt               # 设置非抢占模式,
  # preempt_delay 10      # 仅 state MASTER 时生效   
  priority 100            # 两设备是相同值的等权重节点
  advert_int 5       
  authentication {
      auth_type PASS
      auth_pass 1111
  }
  unicast_src_ip 10.0.54.152  # 设置本机内网IP地址
  unicast_peer {
      10.0.54.150             # 对端设备的 IP 地址
  }
  virtual_ipaddress {
      10.0.54.55           # 设置高可用虚拟 VIP
  }
  notify_master "/etc/keepalived/notify_action.sh MASTER"
  notify_backup "/etc/keepalived/notify_action.sh BACKUP"
  notify_fault "/etc/keepalived/notify_action.sh FAULT"
  notify_stop "/etc/keepalived/notify_action.sh STOP"
  garp_master_delay 1    # 设置当切为主状态后多久更新 ARP 缓存
  garp_master_refresh 5   # 设置主节点发送 ARP 报文的时间间隔
   track_interface {
              eth0               # 使用绑定 VIP 的网卡 例如 eth0
      }
  track_script {
     checkhaproxy
  }
}

主要修改以下内容:

  • 将本机内网IP地址修改为创建好的主用云主机的内网IP;

  • 将对端设备的IP地址修改为备用云主机的内网IP地址;

  • 将高可用虚拟ip设置为需要使用的HaVip。

  • 修改权重值(可选)

按下Esc键,输入:wq并回车以保存并关闭文件。

  1. 执行以下命令,启动KEC1实例的keepalived。
systemctl start keepalived
  1. 登录KEC2实例。执行以下命令,安装keepalived。
yum install keepalived
  1. 编辑keepalived配置文件。

a.执行以下命令,编辑keepalived.conf文件。

vim /etc/keepalived/keepalived.conf 

b.执行命令“i”,进入输入模式。

c.修改keepalived配置文件如下:

! Configuration File for keepalived
global_defs {
notification_email {
 acassen@firewall.loc
 failover@firewall.loc
 sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script checkhaproxy
{
script "/etc/keepalived/do_sth.sh"
 interval 5
}
vrrp_instance VI_1 {
# 注意主备参数选择
state BACKUP            # 设置初始状态均为“备“
interface eth0          # 设置绑定 VIP 的网卡 例如 eth0 
virtual_router_id 51    # 配置集群 virtual_router_id 值
nopreempt               # 设置非抢占模式
# preempt_delay 10      # 仅 state MASTER 时生效  
priority 100            # 两设备是相同值的等权重节点
advert_int 5      
authentication {
    auth_type PASS
    auth_pass 1111
}
unicast_src_ip 10.0.54.150  # 设置本机内网 IP 地址
unicast_peer {
    10.0.54.152             # 对端设备的 IP 地址
}
virtual_ipaddress {
    10.0.54.55             # 设置高可用虚拟 VIP
}
notify_master "/etc/keepalived/notify_action.sh MASTER"
notify_backup "/etc/keepalived/notify_action.sh BACKUP"
notify_fault "/etc/keepalived/notify_action.sh FAULT"
notify_stop "/etc/keepalived/notify_action.sh STOP"
garp_master_delay 1    # 设置当切为主状态后多久更新 ARP 缓存
garp_master_refresh 5   # 设置主节点发送ARP报文的时间间隔
track_interface {
            eth0               # 使用绑定 VIP 的网卡 例如 eth0
    }
track_script {
   checkhaproxy
}
}

主要修改以下内容:

  • 将本机内网IP地址修改为创建好的主用云主机的内网IP;
  • 将对端设备的IP地址修改为备用云主机的内网IP地址;
  • 将高可用虚拟ip设置为需要使用的HaVip。
  • 修改权重值(可选)

按下Esc键,输入:wq并回车以保存并关闭文件。

  1. 执行以下命令,启动ECS2实例的keepalived。
systemctl start keepalived

步骤三:将HaVip与主备KEC实例绑定

  1. 登录控制台
  2. 在左侧导航栏,单击高可用虚拟IP。
  3. 在顶部菜单栏处,选择HaVip的地域。
  4. 找到步骤一中创建的HaVip实例,点击“绑定”。
  5. 在弹出的对话框中,选择KEC1实例,然后单击确定。
  6. 然后继续绑定KEC2实例。

步骤四:将HaVip与EIP绑定

将HaVip与EIP绑定,绑定后该HaVip可以通过EIP提供公网服务。

  1. 登录控制台
  2. 点击“绑定资源”。
  3. 绑定方式选择“HaVip”。
  4. 选择步骤一创建的HaVip,点击“绑定”即绑定成功。

步骤五:访问测试

  1. 打开本地PC的浏览器。
  2. 输入HaVip绑定的EIP地址,访问部署在KEC实例上的Nginx服务。测试结果如下:
  • 当主云服务器KEC1工作正常时,主云服务器KEC1承接客户端访问流量。
    KEC1.png
  • 当主云服务器KEC1出现故障时,备云服务器KEC2会继续工作。KEC2.png

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈