本文介绍在伸缩配置中设置实例名称或主机名称的规则,以便扩容时为扩容的ECS实例生成有序且唯一的实例名称或主机名称,有助于您更好地管理ECS实例。
背景信息
- 根据伸缩规则,伸缩组支持一次扩容一台或者多台ECS实例,也可以多次扩容生成多台ECS实例。您可以在伸缩配置或者启动模板中设置实例名称或主机名称的规则。 
- 不同场景下,设置实例名称或主机名称规则的方案有所差异(如下表所示),本文介绍的设置方案仅适用于场景一。 - 场景描述 - 方案 - 相关链接 - 场景一:要求伸缩组内所有扩容的ECS实例的实例名称或主机名称有序且唯一。 - 必须在伸缩配置中按照规则设置实例名称或主机名称,不能选择启动模板方式进行设置。 重要- 伸缩组的实例名称或主机名称会有序递增,但不一定保证连续递增。例如,扩容的主机名称分别为ess-node-0999、ess-node-1000、ess-node-1002,说明主机名称为ess-node-1001的ECS实例未正常启动,伸缩组将此ECS实例视为不健康实例,移除此ECS实例后,伸缩组重新扩容一台ECS实例,且主机名称为ess-node-1002。 - 场景二:仅关注单次扩容的ECS实例的实例名称或主机名称唯一且有序,不需要伸缩组内所有的ECS实例的实例名称或主机名称唯一。 - 推荐按照指定排序规则的方法进行配置。 - 场景三:对扩容的ECS实例的实例名称或主机名称没有要求。 - 您无需按照场景一或场景二中的命名规则配置,设置普通名称即可。 - 例如,设置主机名为hostname,则扩容的所有ECS实例中主机名称全部为hostname。 - 无 
方式一:在控制台配置有序且唯一的实例名称或主机名称
- 创建伸缩组。 - 具体操作,请参见创建伸缩组。 
- 创建伸缩配置,并在创建成功后启用伸缩配置。 - 具体操作,请参见创建伸缩配置(ECS实例)。其中,在高级设置区域的实例名称和主机名处,您需要指定命名规则。 - 例如,实例名称后输入 - ess-node-(AUTO_INCREMENT)[0,3],主机名处输入- ess-node-(AUTO_INCREMENT)[0,3]-ecshost。说明- 本例中选用的命名规则是固定增长排序,更多信息,请参见(推荐)固定增长排序。如果您希望生成的实例名称或主机名称按照动态排序的规则呈现,更多信息,请参见动态扩展排序。 
- 启用伸缩组。 - 具体操作,请参见启用伸缩组。 
- 创建并执行伸缩规则。 
方式二:调用API配置有序且唯一的实例名称或主机名称
- 调用API CreateScalingGroup接口创建伸缩组。 - 具体操作,请参见CreateScalingGroup - 创建一个伸缩组。 
- 调用API CreateScalingConfiguration接口创建伸缩配置。 - 具体操作,请参见CreateScalingConfiguration - 创建一个ECS类型伸缩配置。其中,在请求参数中,您需要设置InstanceName和HostName参数值。 - 例如,设置InstanceName为 - ess-node-(AUTO_INCREMENT)[0,3],HostName为- ess-node-(AUTO_INCREMENT)[0,3]-ecshost。说明- 本例中选用的命名规则是固定增长排序,更多信息,请参见(推荐)固定增长排序。如果您希望生成的实例名称或主机名称按照动态排序的规则呈现,更多信息,请参见动态扩展排序。 
- 调用API EnableScalingGroup接口启动伸缩组。 - 具体操作,请参见EnableScalingGroup - 启用一个伸缩组。 
- 创建并执行伸缩规则。 - 调用API CreateScalingRule接口创建伸缩规则。 - 具体操作,请参见CreateScalingRule - 创建一条伸缩规则。 - 本步骤以创建简单规则为例。例如,执行该伸缩规则后,伸缩组内ECS实例数量会增加3台。 
- 调用API ExcuteScalingRule接口执行伸缩规则。 - 具体操作,请参见ExecuteScalingRule - 执行一条伸缩规则。 - 执行完成后,增加的3台ECS实例中的实例名称和主机名称显示如下所示: - 实例名称:ess-node-000、ess-node-001、ess-node-002 
- 主机名称:ess-node-000-ecshost、ess-node-001-ecshost、ess-node-002-ecshost 
 
 
(推荐)固定增长排序
参数格式为name_prefix(AUTO_INCREMENT)[begin_number,bits]name_suffix。
由于实例名称或主机名称的设置规则和逻辑是一样的,以下内容均以主机名称规则说明为例。
| 字段名称 | 是否必选 | 配置说明 | 示例 | 
| name_prefix | 是 | 指定主机名称的前缀。 | ess-node- | 
| (AUTO_INCREMENT) | 是 | 固定取值,用来标识此排序方式。 | (AUTO_INCREMENT) | 
| [begin_number,bits] | 是 | 指定主机名称的有序数值。设置后,主机名称的有序数值递增。 重要  [begin_number,bits]字段中不能有空格,且系统默认依次递增,但是如果存在扩容的ECS实例无法启动,会被伸缩组移除后再扩容一台新的ECS实例,所以伸缩组内ECS实例的主机名称可能断续递增。 
 说明  bits建议最少为3,否则容易达到有序数值的上限。在达到上限后,若还有扩容需求,伸缩活动会报错,并停止扩容。此时,您需要重新设置生成主机名称的规则。 | [0,6] | 
| name_suffix | 否 | 指定主机名称的后缀。 | -ecshost | 
| 命名示例 | 伸缩组现有主机名中最大序数值 | 主机名称(以扩容3台ECS实例为例) | 说明 | 
| ess-node-(AUTO_INCREMENT)[0,3]-ecshost | 无 | ess-node-000-ecshost、ess-node-001-ecshost、ess-node-002-ecshost | 首次扩容时,有序数值的位数为bits的值,有序数值从begin_number开始,然后根据扩容ECS的台数依次递增。 | 
| 
 | 无 | ess-node-000000-ecshost、ess-node-000001-ecshost、ess-node-000002-ecshost | 未配置begin_number或者bits时,begin_number默认为0,bits默认为6。 | 
| ess-node-(AUTO_INCREMENT)[99,1]-ecshost | ess-node-000099-ecshost | ess-node-000100-ecshost、ess-node-000101-ecshost、ess-node-000102-ecshost | 
 | 
| ess-node-(AUTO_INCREMENT)[0,2]-ecshost | ess-node-99-ecshost | 伸缩活动报错并停止扩容 | 
 | 
| ess-node-(AUTO_INCREMENT)[0,4] | ess-node-0998-ecshost | ess-node-0999、ess-node-1000、ess-node-1002 | 
 | 
动态扩展排序
参数格式为name_prefix(ess_extend_begin,ess_extend_bits)[begin_number,bits]name_suffix。
由于实例名称或主机名称的设置规则和逻辑是一样的,以下内容均以主机名称规则说明为例。
| 字段名称 | 是否必选 | 配置说明 | 示例 | 
| name_prefix | 是 | 指定主机名称的前缀。 | ess-node- | 
| (ess_extend_begin,ess_extend_bits) | 是 | 指定主机名称的扩展有序数值。当伸缩组内已有主机名中基础有序数值等于最大值时,本参数增加一个值,基础有序数值重新从0开始递增,循环增加直至上限。 
 重要  若扩展有序数值和基础有序数值都达到上限后,伸缩组还有扩容需求,伸缩活动会报错,并停止执行伸缩活动。此时,您需要重新设置生成主机名称的规则。 (ess_extend_begin,ess_extend_bits)字段中不能有空格。当指定的ess_extend_begin位数大于bits的取值时,bits默认为3。 | (0,3) | 
| [begin_number,bits] | 是 | 指定主机名称的基础有序数值。设置后,本参数会递增至最大值,再扩容时,扩展参数增加一个值,本参数从0开始递增,循环增加直至上限。 重要  系统默认依次递增,但是如果存在扩容的ECS实例无法启动,会被伸缩组移除后再扩容一台新的ECS实例,所以伸缩组内ECS实例的主机名称可能断续递增。 
 重要  
 [begin_number,bits]字段中不能有空格。当指定的begin_number位数大于bits的取值时,bits默认为6。 | [0,6] | 
| name_suffix | 否 | 指定主机名称的后缀。 | -ecshost | 
| 命名示例 | 伸缩组现有最大命名主机 | 主机名称(以扩容3台ECS实例为例) | 说明 | 
| ess-node-(0,3)[0,3]-ecshost | 无 | ess-node-000000-ecshost、ess-node-000001-ecshost、ess-node-000002-ecshost | 首次扩容时: 
 | 
| 
 | 无 | ess-node-000000000-ecshost、ess-node-000000001-ecshost、ess-node-000000002-ecshost | 
 | 
| ess-node-(0,1)[0,1]-ecshost | ess-node-08-ecshost | ess-node-10-ecshost、ess-node-11-ecshost、ess-node-12-ecshost | 
 | 
| ess-node-(0,1)[0,1]-ecshost | ess-node-Z9-ecshost | 伸缩活动报错并停止扩容 | 
 | 
| ess-node-(0,1)[0,3] | ess-node-0099-ecshost | ess-node-0100、ess-node-0101、ess-node-0103 | 
 | 
| ess-node-(0,1)[99,1]-ecshost | ess-node-0000099-ecshost | ess-node-0000100-ecshost、ess-node-0000101-ecshost、ess-node-0000102-ecshost | 
 |