本文为您介绍创建、绑定、解绑和释放边缘高可用虚拟IP的相关操作。
HAVIP配置示例
创建边缘高可用虚拟IP
登录边缘节点服务ENS控制台。
在左侧导航栏选择。

在高可用VIP页面,单击创建高可用VIP,配置以下参数。
配置
说明
实例名称
高可用VIP的名称。长度为2~128个字符,必须以大小写字母或中文开头,不能以
http://和https://开头,可以包含数字、半角冒号:、下划线_或者连字符-。有序后缀
在同一节点一次创建多个高可用VIP实例时,实例名称后缀会从
-1开始有序递增,例如:ENSHAVIP-1,ENSHAVIP-2。地域
地域:选择要创建高可用VIP的边缘节点。
数量:每个节点创建高可用VIP的数量。
专有网络:选择高可用VIP所属的专有网络。
交换机:选择高可用VIP所属的交换机。
说明在控制台可同时创建多个边缘节点的高可用VIP,且高可用VIP只支持在VPC网络下创建。
创建成功后,您可以在高可用VIP列表页查看创建的HAVIP。
绑定边缘高可用虚拟IP
高可用VIP可以绑定到ENS实例、弹性网卡实例上,也可以绑定弹性公网IP被公网访问。
ENS实例绑定HAVIP
在高可用VIP列表页,找到目标高可用VIP实例,在操作列单击绑定资源。
在弹出的对话框,选择要绑定的ENS实例或弹性网卡,单击确定。
说明所绑定的实例必须和当前高可用VIP实例处于同一交换机下。
绑定类型为弹性网卡时,弹性网卡需要绑定到计算实例后才能够被选择,否则无法与HAVIP绑定。
弹性公网IP绑定HAVIP
在高可用VIP列表页,找到目标高可用VIP实例,在操作列单击公网IP。
在弹出的对话框,选择要绑定的公网IP(一次只能绑定一个边缘弹性公网实例),单击确定。
解绑边缘高可用虚拟IP
在高可用VIP列表页,找到目标高可用VIP实例,在操作列单击解绑资源。
在弹出的对话框,选择要解绑ENS实例或弹性网卡(一次只能解绑一个实例),单击确认。
解绑ENS实例,只有状态为运行中或已停止时才能解绑。
解绑弹性网卡实例,只有状态为可用和已绑定时才能解绑。
释放边缘高可用虚拟IP
释放高可用VIP前,请确保没有绑定任何云资源,否则无法释放。
在高可用VIP列表页,找到目标高可用VIP实例,在操作列单击释放。
在弹出的对话框,单击确定。
Keepalived配置参考
本示例以双机主备为例,介绍操作系统为CentOS的ENS实例如何安装Keepalived。推荐使用V1.2.15及以上版本的Keepalived。
如有多台备用 ENS 实例,需在各 ENS 实例的unicast_peer中声明所有对端实例的 IP。可前往Keepalived GitHub了解更多信息。
主服务器配置
登录ENS实例
执行
yum install keepalived安装Keepalived。执行
vim /etc/keepalived/keepalived.conf编辑keepalived.conf文件。本示例仅展示需修改部分,请结合具体实例修改keepalived.conf文件配置。请勿直接复制本示例覆盖已有keepalived.conf文件。
! Configuration File for keepalived vrrp_instance VI_1 { strict_mode off # 关闭严格模式以允许单播 state MASTER # 设置为主实例 interface eth0 # 绑定VIP的网卡,本示例配置为eth0 virtual_router_id 51 # 主备集群的virtual_router_id;同一VPC下的不同主备集群需要配置不同的virtual_router_id nopreempt # 设置非抢占模式 priority 100 # 设置优先级,数字越大,优先级越高;本示例配置优先级为100,将本实例设置为主实例 advert_int 1 # 心跳报文发送间隔,单位为秒。设置过小,易受网络抖动影响,可能发生频繁倒换和暂时双主(即脑裂)。设置过大,可能导致主实例故障后,主备切换时间长。 authentication { auth_type PASS auth_pass 1111 } unicast_src_ip 192.168.0.25 # 本实例的私网IP地址,本示例配置为192.168.0.25 unicast_peer { 192.168.0.26 # 对端实例的私网IP地址,本示例配置为192.168.0.26;如有多台备用ENS实例,需声明所有对端实例的IP,每个地址单独占一行,无需逗号或其他分隔符。 } virtual_ipaddress { 192.168.0.24 # 虚拟IP地址,配置为HaVip的IP地址,本示例为192.168.0.24 } garp_master_delay 1 # 当切为主实例后多久更新ARP缓存,单位为秒 garp_master_refresh 5 # 发送ARP报文的时间间隔,单位为秒 track_interface { eth0 # 绑定VIP的网卡,本示例配置为eth0 } }执行
systemctl start keepalived启动 Keepalived。
备服务器配置
登录备 ENS 实例。
执行
yum install keepalived安装Keepalived。执行
vim /etc/keepalived/keepalived.conf编辑keepalived.conf文件。本示例仅展示需修改部分,请结合具体实例修改keepalived.conf文件配置。请勿直接复制本示例覆盖已有keepalived.conf文件。
! Configuration File for keepalived vrrp_instance VI_1 { strict_mode off # 关闭严格模式以允许单播 state BACKUP # 设置为备实例 interface eth0 # 绑定VIP的网卡,本示例配置为eth0 virtual_router_id 51 # 主备集群的virtual_router_id;同一VPC下的不同主备集群需要配置不同的virtual_router_id nopreempt # 设置非抢占模式 priority 10 # 设置优先级,数字越大,优先级越高;本示例配置优先级为10,将本实例设置为备实例 advert_int 1 # 心跳报文发送间隔,单位为秒。设置过小,易受网络抖动影响,可能发生频繁倒换和暂时双主(即脑裂)。设置过大,可能导致主实例故障后,主备切换时间长。 authentication { auth_type PASS auth_pass 1111 } unicast_src_ip 192.168.0.26 # 本实例的私网IP地址,本示例配置为192.168.0.26 unicast_peer { 192.168.0.25 # 对端实例的私网IP地址,本示例配置为192.168.0.25。需声明所有对端实例的IP,每个地址单独占一行,无需逗号或其他分隔符。 } virtual_ipaddress { 192.168.0.24 # 虚拟IP地址,配置为HaVip的IP地址,本示例为192.168.0.24 } garp_master_delay 1 # 当切为主实例后多久更新ARP缓存,单位为秒 garp_master_refresh 5 # 发送ARP报文的时间间隔,单位为秒 track_interface { eth0 # 绑定VIP的网卡,本示例配置为eth0 } }执行
systemctl start keepalived启动 Keepalived。
效果验证
在主备实例分别执行以下命令,创建Web测试服务,返回不同结果。
netstat -an | grep 8000 # 查看端口占用情况,如果8000端口被占用,需要选择其他端口。主实例:
echo "ENS-1" > index.html # 主实例返回"ENS-1" python3 -m http.server 8000备实例:
echo "ENS-2" > index.html # 备实例返回"ENS-2" python3 -m http.server 8000在同 VPC 内的其他 ENS 实例中,执行
curl <havip_private_ip>:8000,将返回ENS-1;当主服务器停机后,将返回ENS-2。