阿里云上keepalived

原理解析

在之前阿里云ecs是无法使用vip的,但是现在推出了高可用虚拟IP(HaVip)可以绑定指定的ecs服务器,然后让他高可用。

原理如下,要购买eip,也就是弹性公网ip在去申请高可用虚拟ip,虚拟ip是和你的ecs在通一个网段中的,然后去使用keepalived响应vip,他会对等映射到eip上,实现高可用。

实验开始

购买两台通地域ecs,放在一个交换机内,然后申请免费的高可用vip。

本示例以操作系统为CentOS的ECS实例为例,介绍如何安装Keepalived。

登录ECS1实例。具体操作,请参见ECS连接方式概述。

执行以下命令,安装Keepalived。

yum install keepalived

编辑keepalived.conf文件。

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

vim /etc/keepalived/keepalived.conf

执行以下命令,进入输入模式。

i

根据以下信息修改keepalived.conf文件。

! Configuration File for keepalived
vrrp_instance VI_1 {
state MASTER           #设置ECS1实例为主实例
    interface eth0          #设置网卡名,本示例配置为eth0  
    virtual_router_id 51
    nopreempt              
    priority 100             #设置优先级,数字越大,优先级越高,本示例配置主用实例优先级为100
    advert_int 1        
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    unicast_src_ip 192.168.0.209   #设置ECS实例的私网IP地址,本示例配置为192.168.0.209
    unicast_peer {
        192.168.0.210           #对端ECS实例的私网IP地址,本示例配置为192.168.0.210
    }
    virtual_ipaddress {
        192.168.0.88          #设置HaVip的IP地址,本示例配置为192.168.0.88 
    }   
    garp_master_delay 1
    garp_master_refresh 5

    track_interface {
        eth0                #设置ECS实例网卡名,本示例配置为eth0
    }
}

说明
本示例仅展示需修改部分,请根据示例修改keepalived.conf文件配置。请勿直接复制本示例覆盖已有keepalived.conf文件。

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

执行以下命令,启动ECS1实例的Keepalived。

systemctl start keepalived

登录ECS2实例。

执行以下命令,安装Keepalived。

yum install keepalived

编辑keepalived.conf文件。

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

vim /etc/keepalived/keepalived.conf

执行以下命令,进入输入模式。

i

根据以下信息修改keepalived.conf文件。

! Configuration File for keepalived
vrrp_instance VI_1 {
state BACKUP           #设置ECS2实例为备用实例
   interface eth0          #设置网卡名,本示例配置为eth0  
   virtual_router_id 51
   nopreempt              
   priority 10             #设置优先级,数字越大,优先级越高,本示例配置备用实例优先级为10
   advert_int 1        
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   unicast_src_ip 192.168.0.210   #设置ECS实例的私网IP地址,本示例配置为192.168.0.210
   unicast_peer {
       192.168.0.209           #对端ECS实例的私网IP地址,本示例配置为192.168.0.209
   }
   virtual_ipaddress {
       192.168.0.88          #设置HaVip的IP地址,本示例配置为192.168.0.88 
   }    
   garp_master_delay 1
   garp_master_refresh 5

   track_interface {
       eth0                #设置ECS实例网卡名,本示例配置为eth0
   }
}

说明
本示例仅展示需修改部分,请根据示例修改keepalived.conf文件配置。请勿直接复制本示例覆盖已有keepalived.conf文件。

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

执行以下命令,启动ECS2实例的Keepalived。

systemctl start keepalived

将HaVip与主备ECS实例绑定

上面配置文件必须要用官方的,把他的keepalived的通信改成单播,然后这里手动绑定vip

您可以将HaVip绑定到ECS实例上,绑定后,ECS实例可以使用ARP协议进行该IP的宣告。

说明
HaVip仅支持绑定到同一个交换机下的ECS实例,每个HaVip最多可以绑定10台ECS实例。

完成以下操作,将HaVip分别与主备ECS实例绑定。

登录专有网络管理控制台。
在左侧导航栏,单击高可用虚拟IP。

在顶部菜单栏处,选择HaVip的地域。

找到步骤一:创建HaVip创建的HaVip实例,单击HaVip实例的ID。

在绑定资源区域ECS实例处,单击立即绑定。

绑定后测试即可

测试页面正常访问,以及宕机后是否会切换。