ALIYUN::EHPC::AutoScaleConfig类型用于设置指定集群的自动伸缩配置信息。
语法
{
"Type": "ALIYUN::EHPC::AutoScaleConfig",
"Properties": {
"ExtraNodesGrowRatio": Integer,
"EnableAutoGrow": Boolean,
"ClusterId": String,
"ShrinkIdleTimes": Integer,
"MaxNodesInCluster": Integer,
"EnableAutoShrink": Boolean,
"GrowRatio": Integer,
"GrowIntervalInMinutes": Integer,
"GrowTimeoutInMinutes": Integer,
"ImageId": String,
"ShrinkIntervalInMinutes": Integer,
"SpotPriceLimit": Number,
"Queues": List,
"ExcludeNodes": String,
"SpotStrategy": String
}
}
属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
---|---|---|---|---|---|
ExtraNodesGrowRatio | Integer | 否 | 是 | 额外节点百分比。 | 如果作业负载需要新增100个计算节点,当ExtraNodesGrowRatio取值为2时,那么最终新增的计算节点为102个。
取值范围:0~100。 默认值:0。 |
EnableAutoGrow | Boolean | 否 | 是 | 是否开启自动扩容。 | 取值:
|
ClusterId | String | 是 | 否 | 集群ID。 | 无 |
ShrinkIdleTimes | Integer | 否 | 是 | 节点连续空闲(未运行作业)次数。 | 当节点收缩检查时,一个节点连续处于空闲状态的次数。
取值范围:2~5。 默认值:3。 如果设置节点连续空闲次数为3,表示一个计算节点连续空闲超过3次就会被释放。因为ShrinkIntervalInMinutes默认值是2分钟,所以在默认配置下,一个计算节点连续空闲时间超过6分钟,就会被释放。 |
MaxNodesInCluster | Integer | 否 | 是 | 集群最多可以扩容的计算节点数量。 | 取值范围:0~500。
默认值:100。 |
EnableAutoShrink | Boolean | 否 | 是 | 是否开启自动缩容。 | 取值:
|
GrowRatio | Integer | 否 | 是 | 扩容比例。 | 如果作业负载需要新增10个计算节点,GrowRatio配置为50,那么会进行多轮扩容,每轮扩容当前所需的50%节点。
取值范围:1~100。 默认值:100。 |
GrowIntervalInMinutes | Integer | 否 | 是 | 每轮计算节点扩容的时间间隔。 | 单位:分钟。
取值范围:2~10。 默认值:2。 说明 一次扩容任务可能会分几次完成,或者连续触发扩容时的时间间隔。
|
GrowTimeoutInMinutes | Integer | 否 | 是 | 扩容超时时间。 | 单位:分钟。
取值范围:10~60。 默认值:20。 当扩容时间大于扩容超时时间时,节点依然未达到运行状态,该节点将被释放。 |
ImageId | String | 否 | 是 | 镜像ID。 |
说明
|
ShrinkIntervalInMinutes | Integer | 否 | 是 | 每轮计算节点收缩的时间间隔。 | 单位:分钟。
取值范围:2~10。 默认值:2。 |
SpotPriceLimit | Number | 否 | 是 | 设置节点的每小时最高价格。 | 最多支持3位小数。
当参数SpotStrategy取值为SpotWithPriceLimit时,本参数生效。 |
Queues | List | 否 | 是 | 扩容队列配置列表。 | 更多信息,请参见Queues属性。 |
ExcludeNodes | String | 否 | 是 | 例外节点列表,不参与自动伸缩的节点列表。 | 节点之间用半角逗号(,)隔开。
说明 如果您希望一直保留某个节点,可以设置为例外节点,空闲时不被释放。
|
SpotStrategy | String | 否 | 是 | 计算节点抢占策略。 | 取值:
|
Queues语法
"Queues": [
{
"HostNameSuffix": String,
"MinNodesInQueue": Integer,
"MaxNodesInQueue": Integer,
"EnableAutoGrow": Boolean,
"DataDisks": List,
"SystemDiskSize": Integer,
"SystemDiskLevel": String,
"QueueImageId": String,
"MinNodesPerCycle": Integer,
"MaxNodesPerCycle": Integer,
"EnableAutoShrink": Boolean,
"SystemDiskCategory": String,
"HostNamePrefix": String,
"SpotPriceLimit": Number,
"InstanceTypes": List,
"InstanceType": String,
"QueueName": String,
"SpotStrategy": String
}
]
Queues属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
---|---|---|---|---|---|
HostNameSuffix | String | 否 | 是 | 队列中扩容的主机名后缀。 | 无 |
MinNodesInQueue | Integer | 否 | 是 | 队列允许收缩的最小节点数。 | 取值范围:0~50。
默认值:0。 |
MaxNodesInQueue | Integer | 否 | 是 | 队列允许扩容的最大节点数。 | 取值范围:0~500。
默认值:100。 |
EnableAutoGrow | Boolean | 否 | 是 | 队列是否允许自动扩容。 | 取值:
|
DataDisks | List | 否 | 是 | 数据盘配置列表。 | 更多信息,请参见DataDisks属性。 |
SystemDiskSize | Integer | 否 | 是 | 队列中扩容的节点系统盘大小。 | 单位:GB。
取值范围:40~500。 默认值:40。 |
SystemDiskLevel | String | 否 | 是 | 队列中扩容的计算节点系统盘性能等级。 | 取值:
|
QueueImageId | String | 否 | 是 | 扩容队列的镜像ID。 |
说明
|
MinNodesPerCycle | Integer | 否 | 是 | 自动伸缩每轮扩容的最小计算节点数。 | 取值范围:1~99。
默认值:1。 如果某一轮次需扩容节点数量小于所设置的最小计算节点数,自动伸缩为保证资源的正常交付,会将该轮次的最小计算节点数自动调整为当前轮次需要扩容节点数量。说明 该调整仅对当前轮次的最小计算节点数生效。
|
MaxNodesPerCycle | Integer | 否 | 是 | 自动伸缩每轮扩容的最大计算节点数。 | 取值范围:0~99。
默认值:0。 |
EnableAutoShrink | Boolean | 否 | 是 | 队列是否允许自动缩容。 | 取值:
|
SystemDiskCategory | String | 否 | 是 | 队列中扩容的计算节点系统盘类型。 | 取值:
|
HostNamePrefix | String | 否 | 是 | 队列中扩容的主机名前缀。 | 无 |
SpotPriceLimit | Number | 否 | 是 | 队列中自动扩容的计算节点的每小时最高价格。 | 最多支持3位小数。
当参数Queues.N.SpotStrategy取值为SpotWithPriceLimit时,本参数生效。 |
InstanceTypes | List | 否 | 是 | 队列中自动扩容的节点配置列表。 | 更多信息,请参见InstanceTypes属性。 |
InstanceType | String | 否 | 是 | 队列中自动扩容的节点规格。 | 无 |
QueueName | String | 否 | 是 | 队列名称。 | 支持同时设置N个队列的名称。 |
SpotStrategy | String | 否 | 是 | 队列中自动扩容的计算节点的抢占策略。 | 取值:
|
DataDisks语法
"DataDisks": [
{
"DataDiskKMSKeyId": String,
"DataDiskPerformanceLevel": String,
"DataDiskEncrypted": Boolean,
"DataDiskDeleteWithInstance": Boolean,
"DataDiskSize": Integer,
"DataDiskCategory": String
}
]
DataDisks属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
---|---|---|---|---|---|
DataDiskKMSKeyId | String | 否 | 是 | 第N个随节点创建的数据盘使用的KMS密钥ID。 | 无 |
DataDiskPerformanceLevel | String | 否 | 是 | 第N个随节点创建的数据盘类型为ESSD云盘时,区分性能等级。 | 当DataDiskCategory取值为cloud_essd时,本参数有效。
取值:
|
DataDiskEncrypted | Boolean | 否 | 是 | 第N个随节点创建的数据盘是否加密。 | 取值:
|
DataDiskDeleteWithInstance | Boolean | 否 | 是 | 第N个随节点创建的数据盘是否随实例释放。 | 取值:
|
DataDiskSize | Integer | 否 | 是 | 第N个随节点创建的数据盘容量大小。 | 单位:GB。
取值范围:40~500。 默认值:40。 |
DataDiskCategory | String | 否 | 是 | 第N个随节点创建的数据盘类型。 | 取值:
|
InstanceTypes语法
"InstanceTypes": [
{
"ZoneId": String,
"VSwitchId": String,
"SpotPriceLimit": Number,
"InstanceType": String,
"SpotStrategy": String
}
]
InstanceTypes属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
---|---|---|---|---|---|
ZoneId | String | 是 | 否 | 队列中自动扩容的节点所在可用区ID。 | 支持同时设置N个队列的名称和同时为队列中N个节点设置可用区ID。
当队列自动扩容时,相关配置生效。 N的取值范围:0~500。 |
VSwitchId | String | 是 | 否 | 队列中自动扩容的节点绑定的交换机ID。 | 支持同时设置N个队列的名称和同时为队列中N个节点设置交换机ID。
当队列自动扩容时,相关配置生效。 N的取值范围:0~500。 |
SpotPriceLimit | Number | 否 | 是 | 队列中自动扩容的节点每小时最高价格。 | 最多支持3位小数。
当参数SpotStrategy取值为SpotWithPriceLimit时,本参数生效。 支持同时设置N个队列的名称和同时为队列中N个节点设置每小时最高价格。当队列自动扩容时,相关配置生效。 N的取值范围:0~500。 |
InstanceType | String | 是 | 是 | 队列中自动扩容的节点规格。 | 支持同时设置N个队列的名称和同时为队列中N个节点设置规格参数。
当队列自动扩容时,相关配置生效。 N的取值范围:0~500。 |
SpotStrategy | String | 否 | 是 | 队列中自动扩容的计算节点竞价策略。 | 取值:
支持同时为队列中N个节点设置计算节点竞价策略。 当队列自动扩容时,相关配置生效。 N的取值范围:0~500。 |
返回值
Fn::GetAtt
ClusterId:集群ID。
示例
-
JSON
格式{ "ROSTemplateFormatVersion": "2015-09-01", "Parameters": { "ClusterId": { "Type": "String", "Description": "Cluster ID." }, "Queues": { "Type": "Json", "Description": "", "MaxLength": 8 } }, "Resources": { "AutoScaleConfig": { "Type": "ALIYUN::EHPC::AutoScaleConfig", "Properties": { "ClusterId": { "Ref": "ClusterId" }, "Queues": { "Ref": "Queues" } } } }, "Outputs": { "ClusterId": { "Description": "Cluster Id.", "Value": { "Fn::GetAtt": [ "AutoScaleConfig", "ClusterId" ] } } } }