更新时间:2024-12-10 GMT+08:00

创建弹性伸缩策略

功能介绍

创建弹性伸缩策略。

接口约束

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

URI

POST /v2/{project_id}/autoscaling-policy/{cluster_id}

表1 URI参数说明

名称

是否必选

参数类型

说明

project_id

String

参数解释:

项目编号。获取方法,请参见获取项目ID

约束限制:

不涉及

取值范围:

只能由英文字母和数字组成,且长度为[1-64]个字符。

默认取值:

不涉及

cluster_id

String

参数解释:

集群ID。如果指定集群ID,则获取该集群做过补丁更新的最新版本元数据。获取方法,请参见获取集群ID

约束限制:

不涉及

取值范围:

只能由英文字母、数字以及“_”和“-”组成,且长度为[1-64]个字符。

默认取值:

不涉及

请求参数

表2 请求Body参数

参数

是否必选

参数类型

描述

node_group_name

String

参数解释:

节点组名称。

约束限制:

不涉及

取值范围:

必填参数。如果resource_pool_name为default,则创建节点组维度的弹性伸缩策略。如果resource_pool_name不为default,则在该节点组下创建对应资源池维度的策略。

默认取值:

不涉及

resource_pool_name

String

参数解释:

资源池名称。

约束限制:

不涉及

取值范围:

必填参数。当集群版本不支持按指定资源池进行弹性伸缩时,需要填写为default资源池。不为default时删除指定资源池维度的弹性伸缩策略。

默认取值:

不涉及

auto_scaling_policy

AutoScalingPolicyInfo object

参数解释:

弹性伸缩规则,参数详情具体请参见表3

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

表3 AutoScalingPolicyInfo

参数

是否必选

参数类型

描述

auto_scaling_enable

Boolean

参数解释:

当前自动伸缩规则是否开启。

约束限制:

不涉及

取值范围:

  • true:开启自动伸缩规则
  • false:不开启自动伸缩规则

默认取值:

不涉及

min_capacity

Integer

参数解释:

指定该节点组的最小保留节点数。

约束限制:

不涉及

取值范围:

0-500

默认取值:

不涉及

max_capacity

Integer

参数解释:

指定该节点组的最大节点数。

约束限制:

不涉及

取值范围:

0-500

默认取值:

不涉及

resources_plans

Array of ResourcesPlan objects

参数解释:

资源计划列表,参数详情具体请参见表4

若该参数为空表示不启用资源计划。

约束限制:

当启用弹性伸缩时,资源计划与自动伸缩规则需至少配置其中一种。不能超过5条。

取值范围:

不涉及

默认取值:

不涉及

rules

Array of Rule objects

参数解释:

自动伸缩的规则列表,参数详情具体请参见表5

约束限制:

当启用弹性伸缩时,资源计划与自动伸缩规则需至少配置其中一种。不能超过10条。

取值范围:

不涉及

默认取值:

不涉及

tags

Array of Tag objects

参数解释:

弹性伸缩标签列表,参数详情具体请参见表7

约束限制:

不能超过100条。

取值范围:

不涉及

默认取值:

不涉及

表4 ResourcesPlan

参数

是否必选

参数类型

描述

period_type

String

参数解释:

资源计划的周期类型,当前只允许以下类型:daily。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

start_time

String

参数解释:

资源计划的起始时间,格式为“hour:minute”,表示时间在0:00-23:59之间。

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

end_time

String

参数解释:

资源计划的结束时间,格式与“start_time”相同。

约束限制:

不早于start_time表示的时间,且与start_time间隔不小于30min。

取值范围:

不涉及

默认取值:

不涉及

min_capacity

Integer

参数解释:

资源计划内该节点组的最小保留节点数。

约束限制:

不涉及

取值范围:

0-500

默认取值:

不涉及

max_capacity

Integer

参数解释:

资源计划内该节点组的最大保留节点数。

约束限制:

不涉及

取值范围:

0-500

默认取值:

不涉及

effective_days

Array of strings

参数解释:

资源计划的生效日期,为空时代表每日,另外也可为以下返回值:

MONDAY(周一)、TUESDAY(周二)、WEDNESDAY(周三)、THURSDAY(周四)、FRIDAY(周五)、SATURDAY(周六)、SUNDAY(周日)

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

表5 Rule

参数

是否必选

参数类型

描述

name

String

参数解释:

弹性伸缩规则的名称。

约束限制:

不涉及

取值范围:

只能由英文字母、数字以及“_”和“-”组成,且长度为[1-64]个字符。

在一个节点组范围内,不允许重名。

默认取值:

不涉及

description

String

参数解释:

弹性伸缩规则的说明。

约束限制:

不涉及

取值范围:

长度为[0-1024]个字符。

默认取值:

不涉及

adjustment_type

String

参数解释:

弹性伸缩规则的调整类型。

约束限制:

不涉及

取值范围:

  • scale_out:扩容
  • scale_in:缩容

默认取值:

不涉及

cool_down_minutes

Integer

参数解释:

触发弹性伸缩规则后,该集群处于冷却状态(不再执行弹性伸缩操作)的时长,单位为分钟。

约束限制:

不涉及

取值范围:

0-10080。10080为一周的分钟数。

默认取值:

不涉及

scaling_adjustment

Integer

参数解释:

单次调整集群节点的个数。

约束限制:

不涉及

取值范围:

1-100

默认取值:

不涉及

trigger

Trigger object

参数解释:

描述该规则触发条件,参数详情具体请参见表6

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

表6 Trigger

参数

是否必选

参数类型

描述

metric_name

String

参数解释:

指标名称。该触发条件会依据该名称对应指标的值来进行判断。

约束限制:

不涉及

取值范围:

取值范围请参见"弹性伸缩指标列表"

默认取值:

不涉及

metric_value

String

参数解释:

指标阈值。触发该条件的指标阈值,只允许输入整数或者带两位小数的数。

约束限制:

不涉及

取值范围:

只允许输入整数或者带两位小数的数。

默认取值:

不涉及

comparison_operator

String

参数解释:

指标判断逻辑运算符。

约束限制:

不涉及

取值范围:

  • LT:小于
  • GT:大于
  • LTOE:小于等于
  • GTOE:大于等于

默认取值:

不涉及

evaluation_periods

Integer

参数解释:

判断连续满足指标阈值的周期数(一个周期为5分钟)。

约束限制:

不涉及

取值范围:

1-288

默认取值:

不涉及

表7 Tag

参数

是否必选

参数类型

描述

key

String

参数解释:

标签的键。

约束限制:

不涉及

取值范围:

  • 标签的key值可以包含任意语种字母、数字、空格和_.:=+-@,但首尾不能含有空格,不能以_sys_开头。
  • 同一资源的key值不能重复。
  • 最大长度128个unicode字符,不能为空字符串。

默认取值:

不涉及

value

String

参数解释:

标签的值。

约束限制:

不涉及

取值范围:

  • 标签的value值可以包含任意语种字母、数字、空格和_.:=+-@,但首尾不能含有空格,不能以_sys_开头。
  • 最大长度255个unicode字符,可以为空字符串。

默认取值:

不涉及

响应参数

请求示例

创建一个弹性伸缩策略,在节点组node_group_1中配置节点组数量范围为0-5,并配置2个伸缩规则。 如果YARNAppRunning大于等于75 ,并持续1个五分钟,则添加1个Task节点。如果YARNAppRunning小于等于25 ,并持续1个五分钟,则终止1个Task节点。冷却时间皆为20分钟,并且设置了该策略下弹出的节点会打上aaa=bbb的标签。

/v2/{project_id}/autoscaling-policy/{cluster_id}

{
  "node_group_name" : "node_group_1",
  "auto_scaling_policy" : {
    "auto_scaling_enable" : true,
    "min_capacity" : 0,
    "max_capacity" : 5,
    "rules" : [ {
      "name" : "default-expand-1",
      "adjustment_type" : "scale_out",
      "cool_down_minutes" : 20,
      "scaling_adjustment" : 1,
      "trigger" : {
        "metric_name" : "YARNAppRunning",
        "metric_value" : "75",
        "comparison_operator" : "GT",
        "evaluation_periods" : 1
      }
    }, {
      "name" : "default-shrink-1",
      "adjustment_type" : "scale_in",
      "cool_down_minutes" : 20,
      "scaling_adjustment" : 1,
      "trigger" : {
        "metric_name" : "YARNAppRunning",
        "metric_value" : "25",
        "comparison_operator" : "LT",
        "evaluation_periods" : 1
      }
    } ],
    "resources_plans" : [ {
      "period_type" : "daily",
      "start_time" : "06:00",
      "end_time" : "20:00",
      "min_capacity" : "0",
      "max_capacity" : "2",
      "effective_days" : [ "MONDAY" ]
    } ],
    "tags" : [ {
      "key" : "aaa",
      "value" : "bbb"
    } ]
  },
  "resource_pool_name" : "default"
}

响应示例

状态码

状态码请参见状态码

错误码

请参见错误码