扩缩容时为ECS实例自动绑定和释放带有EIP的辅助弹性网卡

如果需要实现高可用集群搭建、低成本故障转移和精细化的网络管理,同时需要公网访问能力,您可以在扩容时为新的ECS实例自动绑定带有EIP的辅助弹性网卡。如果伸缩组中的ECS实例已绑定了带有EIP的辅助弹性网卡,但您需要及时释放ECS资源(例如业务进入低谷期),或不再需要公网访问能力,您可以在缩容时自动释放不再需要的辅助弹性网卡和EIP以优化资源使用并降低成本。

说明
  • 弹性网卡是一种可以绑定到专有网络(VPC类型)ECS实例上的虚拟网卡,弹性网卡分为主网卡和辅助网卡。更多信息,请参见弹性网卡概述

  • EIP是可以独立购买和持有的公网IP地址资源,用于长期持有某个公网IP地址。您可以根据业务需要将EIP绑定到ECS实例、弹性网卡等资源,或者从这些资源解绑。更多信息,请参见弹性公网IP

准备工作

  • 已创建伸缩组,且该伸缩组处于启用状态。具体操作,请参见配置伸缩组

  • 授予OOS服务访问其他云产品权限。具体操作,请参见为OOS服务设置RAM权限

    1. 创建RAM角色。

      本步骤中RAM角色的受信服务为系统运维管理,RAM角色名称以OOSServiceRole为例。

    2. 为RAM角色添加授权策略。

      通过OOS执行任务时涉及ECS、弹性伸缩以及EIP资源,因此您需要为OOSServiceRole角色添加以下系统策略:

      • AliyunECSFullAccess

      • AliyunESSFullAccess

      • AliyunEIPFullAccess

扩容时为ECS实例自动绑定带有EIP的辅助弹性网卡

  1. 创建生命周期挂钩。

    主要配置项说明如下所示,未提及的配置保持默认即可。具体操作,请参见配置生命周期挂钩

    配置项

    说明

    名称

    输入ESSHookForAttachNicWithEip

    适用的伸缩活动类型

    选择弹性扩张活动

    超时时间

    输入适当的超时时间,例如300秒。

    重要

    该参数用于执行自定义操作的时间,若超时时间过短,可能导致自定义操作失败,请评估自定义操作耗时并设置适当的超时时间。

    挂钩期间执行的动作

    执行动作选择OOS模板。配置步骤如下:

    1. OOS模板类型选择公共模板

    2. 选择OOS公共模板ACS-ESS-LifeCycleCreateNetworkInterfaceAndEipAndAttachToInstance,实现扩容时为ECS实例自动绑定带有EIP的辅助弹性网卡。

    3. 单击ACS-ESS-LifeCycleCreateNetworkInterfaceAndEipAndAttachToInstance模板后的设置参数

      主要参数示例如下,未提及的参数保持默认即可。

      • EIP的计量方式:PayByBandwidth为按带宽计费,PayByTraffic为按流量计费。本教程以PayByBandwidth为例。

      • EIP的带宽峰值:本教程以5为例,代表使用EIP时带宽峰值为5 Mbit/s。

      • OOS扮演的RAM角色:选择OOSServiceRole即可。

  2. 弹性伸缩触发扩容活动。

    本步骤以手动执行伸缩规则增加1台ECS实例为例。您也可以通过定时任务、报警任务等方式触发扩容。具体操作,请参见配置伸缩规则

    说明

    手动执行伸缩规则触发扩容时,生命周期挂钩会生效,但手动添加已有ECS实例时,生命周期挂钩不会生效。

    成功触发扩容活动后,伸缩组会自动扩容1台ECS实例,但由于伸缩组内已创建生命周期挂钩ESSHookForAttachNicWithEip,ECS实例会被挂起,同时自动通知OOS服务执行运维操作,即创建辅助弹性网卡(同时自动为该网卡分配了一个EIP)并将其绑定在ECS实例上。

    如果伸缩活动的状态为失败,且出现以下报错,请前往OOS控制台查看运维任务执行情况。具体操作,请参见(可选)查看OOS执行情况instance-rollback

  3. 查看扩容的ECS实例是否已自动绑定带有EIP的辅助弹性网卡。

    1. 在伸缩组的实例列表 > 自动创建页签下,单击自动创建的ECS实例对应云服务器ID/名称列下的实例ID。

    2. 在ECS实例详情页,单击弹性网卡页签,查看ECS实例绑定的弹性网卡。

      如下图所示,表示ECS实例已自动绑定了1张辅助弹性网卡,并且为该辅助弹性网卡分配了EIP。自动绑定的辅助ENI

      说明

      如果成功创建了ECS实例,但ECS实例并没有自动绑定辅助弹性网卡和EIP,请前往OOS控制台查看运维任务执行情况。

  4. (可选)查看OOS执行情况。

    在任务执行详情页面查看执行的相关信息。您可以在基本信息区域查看执行ID、执行状态等,也可以在执行步骤和结果区域,查看执行详情和相应日志。具体操作,请参见查看执行详情

    重要

    如果执行失败,在执行详情页面也会显示相关的报错信息。

  5. (可选)配置辅助弹性网卡。

    ECS实例绑定辅助弹性网卡后,部分镜像可能无法自动识别辅助弹性网卡的IP地址并添加路由,导致辅助弹性网卡无法正常使用。具体操作,请参见配置辅助弹性网卡

缩容时为ECS实例自动释放带有EIP的辅助弹性网卡

  1. 创建生命周期挂钩。

    主要配置项说明如下所示,未提及的配置保持默认即可。具体操作,请参见配置生命周期挂钩

    配置项

    说明

    名称

    输入ESSHookForDeleteNicAndEip

    适用的伸缩活动类型

    选择弹性收缩活动

    超时时间

    输入适当的超时时间,例如300秒。

    重要

    超时时间即用于执行自定义操作的时间,若超时时间过短,可能导致自定义操作失败,请评估自定义操作耗时并设置适当的超时时间。

    挂钩期间执行的动作

    执行动作选择OOS模板。配置步骤如下:

    1. OOS模板类型选择公共模板

    2. 选择OOS公共模板ACS-ESS-LifeCycleDetachNetworkInterfaceAndDeleteEip,实现扩容时为ECS实例自动释放带有EIP的辅助弹性网卡。

    3. 单击ACS-ESS-LifeCycleDetachNetworkInterfaceAndDeleteEip模板后的设置参数

      设置OOS扮演的RAM角色OOSServiceRole即可,其他参数保持默认即可。

  2. 弹性伸缩触发缩容活动。

    本步骤以手动执行伸缩规则减少1台ECS实例为例。您也可以通过定时任务、报警任务等方式触发扩容。具体操作,请参见配置伸缩规则

    说明

    手动执行伸缩规则触发缩容时,生命周期挂钩会生效,但手动移出已有ECS实例时,生命周期挂钩不会生效。

    成功触发缩容活动后,伸缩组会自动减少1台ECS实例,但由于伸缩组内已创建生命周期挂钩ESSHookForDeleteNicAndEip,ECS实例会被挂起,同时自动通知OOS服务执行运维操作(即已成功释放ECS上的辅助弹性网卡和EIP)。

  3. 查看缩容的ECS实例是否已自动释放辅助弹性网卡和EIP。

    您可以前往网卡列表弹性公网IP列表,查看对应的辅助弹性网卡和EIP,如果不存在,则说明释放了辅助弹性网卡和EIP。

    说明

    如果成功删除了ECS实例,但并没有同时释放辅助弹性网卡和EIP,请前往OOS控制台查看运维任务执行情况。

  4. (可选)查看OOS执行情况。

    在任务执行详情页面,查看执行的相关信息。您可以在基本信息区域查看执行ID、执行状态等,也可以在执行步骤和结果区域,查看执行详情和相应日志。具体操作,请参见查看执行详情

    重要

    如果执行失败,在执行详情页面也会显示相关的报错信息。

常见问题

如果运维任务执行失败,请根据执行结果中的报错信息排查原因。更多信息,请参见常见问题

常见的报错信息如下:

报错信息

原因

解决方案

Forbidden.Unauthorized message: A required authorization for the specified action is not supplied.

您并未向弹性伸缩授权操作当前Action。

请检查是否为RAM角色OOSServiceRole添加了相应的权限。

Forbidden.RAM message: User not authorized to operate on the specified resource, or this API doesn't support RAM.

RAM用户或RAM角色没有操作对应资源的权限。

请检查是否为RAM角色OOSServiceRole添加了相应的权限。例如为RAM角色授予OOS服务的示例权限。您需要为RAM角色添加操作权限,确保OOS服务能够操作OOS模板中涉及的资源。

LifecycleHookIdAndLifecycleActionToken.Invalid message: The specified lifecycleActionToken and lifecycleActionId you provided does not match any in process lifecycle action.

正在进行的生命周期动作已经过期或中止。

请评估生命周期挂钩的超时时间,确保在超时时间内可以执行完OOS模板中定义的运维任务。

相关文档

  • EIP计费项包含公网网络费、EIP配置费(公网IP保有费)和EIP绑定费,更多信息,请参见EIP计费概述

  • 您可以在扩容时为新的ECS实例自动绑定EIP以保持服务的可访问性,并在缩容时自动释放不再需要的EIP以优化资源使用并降低成本。具体操作,请参见自动绑定和释放EIP