如果需要实现高可用集群搭建、低成本故障转移和精细化的网络管理,同时需要公网访问能力,您可以在扩容时为新的ECS实例自动绑定带有EIP的辅助弹性网卡。如果伸缩组中的ECS实例已绑定了带有EIP的辅助弹性网卡,但您需要及时释放ECS资源(例如业务进入低谷期),或不再需要公网访问能力,您可以在缩容时自动释放不再需要的辅助弹性网卡和EIP以优化资源使用并降低成本。
准备工作
已创建伸缩组,且该伸缩组处于启用状态。具体操作,请参见配置伸缩组。
授予OOS服务访问其他云产品权限。具体操作,请参见为OOS服务设置RAM权限。
创建RAM角色。
本步骤中RAM角色的受信服务为系统运维管理,RAM角色名称以
OOSServiceRole
为例。为RAM角色添加授权策略。
通过OOS执行任务时涉及ECS、弹性伸缩以及EIP资源,因此您需要为
OOSServiceRole
角色添加以下系统策略:AliyunECSFullAccess
AliyunESSFullAccess
AliyunEIPFullAccess
扩容时为ECS实例自动绑定带有EIP的辅助弹性网卡
创建生命周期挂钩。
主要配置项说明如下所示,未提及的配置保持默认即可。具体操作,请参见配置生命周期挂钩。
配置项
说明
名称
输入
ESSHookForAttachNicWithEip
。适用的伸缩活动类型
选择弹性扩张活动。
超时时间
输入适当的超时时间,例如300秒。
重要该参数用于执行自定义操作的时间,若超时时间过短,可能导致自定义操作失败,请评估自定义操作耗时并设置适当的超时时间。
挂钩期间执行的动作
执行动作选择OOS模板。配置步骤如下:
OOS模板类型选择公共模板。
选择OOS公共模板
ACS-ESS-LifeCycleCreateNetworkInterfaceAndEipAndAttachToInstance
,实现扩容时为ECS实例自动绑定带有EIP的辅助弹性网卡。单击
ACS-ESS-LifeCycleCreateNetworkInterfaceAndEipAndAttachToInstance
模板后的设置参数。主要参数示例如下,未提及的参数保持默认即可。
EIP的计量方式:PayByBandwidth为按带宽计费,PayByTraffic为按流量计费。本教程以PayByBandwidth为例。
EIP的带宽峰值:本教程以5为例,代表使用EIP时带宽峰值为5 Mbit/s。
OOS扮演的RAM角色:选择
OOSServiceRole
即可。
弹性伸缩触发扩容活动。
本步骤以手动执行伸缩规则增加1台ECS实例为例。您也可以通过定时任务、报警任务等方式触发扩容。具体操作,请参见配置伸缩规则。
说明手动执行伸缩规则触发扩容时,生命周期挂钩会生效,但手动添加已有ECS实例时,生命周期挂钩不会生效。
成功触发扩容活动后,伸缩组会自动扩容1台ECS实例,但由于伸缩组内已创建生命周期挂钩
ESSHookForAttachNicWithEip
,ECS实例会被挂起,同时自动通知OOS服务执行运维操作,即创建辅助弹性网卡(同时自动为该网卡分配了一个EIP)并将其绑定在ECS实例上。如果伸缩活动的状态为失败,且出现以下报错,请前往OOS控制台查看运维任务执行情况。具体操作,请参见(可选)查看OOS执行情况。
查看扩容的ECS实例是否已自动绑定带有EIP的辅助弹性网卡。
在伸缩组的
页签下,单击自动创建的ECS实例对应云服务器ID/名称列下的实例ID。在ECS实例详情页,单击弹性网卡页签,查看ECS实例绑定的弹性网卡。
如下图所示,表示ECS实例已自动绑定了1张辅助弹性网卡,并且为该辅助弹性网卡分配了EIP。
说明如果成功创建了ECS实例,但ECS实例并没有自动绑定辅助弹性网卡和EIP,请前往OOS控制台查看运维任务执行情况。
(可选)查看OOS执行情况。
在任务执行详情页面查看执行的相关信息。您可以在基本信息区域查看执行ID、执行状态等,也可以在执行步骤和结果区域,查看执行详情和相应日志。具体操作,请参见查看执行详情。
重要如果执行失败,在执行详情页面也会显示相关的报错信息。
(可选)配置辅助弹性网卡。
ECS实例绑定辅助弹性网卡后,部分镜像可能无法自动识别辅助弹性网卡的IP地址并添加路由,导致辅助弹性网卡无法正常使用。具体操作,请参见配置辅助弹性网卡。
缩容时为ECS实例自动释放带有EIP的辅助弹性网卡
创建生命周期挂钩。
主要配置项说明如下所示,未提及的配置保持默认即可。具体操作,请参见配置生命周期挂钩。
配置项
说明
名称
输入
ESSHookForDeleteNicAndEip
。适用的伸缩活动类型
选择弹性收缩活动。
超时时间
输入适当的超时时间,例如300秒。
重要超时时间即用于执行自定义操作的时间,若超时时间过短,可能导致自定义操作失败,请评估自定义操作耗时并设置适当的超时时间。
挂钩期间执行的动作
执行动作选择OOS模板。配置步骤如下:
OOS模板类型选择公共模板。
选择OOS公共模板
ACS-ESS-LifeCycleDetachNetworkInterfaceAndDeleteEip
,实现扩容时为ECS实例自动释放带有EIP的辅助弹性网卡。单击
ACS-ESS-LifeCycleDetachNetworkInterfaceAndDeleteEip
模板后的设置参数。设置OOS扮演的RAM角色为
OOSServiceRole
即可,其他参数保持默认即可。
弹性伸缩触发缩容活动。
本步骤以手动执行伸缩规则减少1台ECS实例为例。您也可以通过定时任务、报警任务等方式触发扩容。具体操作,请参见配置伸缩规则。
说明手动执行伸缩规则触发缩容时,生命周期挂钩会生效,但手动移出已有ECS实例时,生命周期挂钩不会生效。
成功触发缩容活动后,伸缩组会自动减少1台ECS实例,但由于伸缩组内已创建生命周期挂钩
ESSHookForDeleteNicAndEip
,ECS实例会被挂起,同时自动通知OOS服务执行运维操作(即已成功释放ECS上的辅助弹性网卡和EIP)。查看缩容的ECS实例是否已自动释放辅助弹性网卡和EIP。
您可以前往网卡列表和弹性公网IP列表,查看对应的辅助弹性网卡和EIP,如果不存在,则说明释放了辅助弹性网卡和EIP。
说明如果成功删除了ECS实例,但并没有同时释放辅助弹性网卡和EIP,请前往OOS控制台查看运维任务执行情况。
(可选)查看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。