Updated on 2023-12-21 GMT+08:00

Creating an AS policy

Function

This API is used to create an AS policy.

Constraints

None

Debugging

You can debug this API in API Explorer. Automatic authentication is supported. API Explorer can automatically generate sample SDK code and support sample SDK code debugging.

URI

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

Table 1 URI parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID.

cluster_id

Yes

String

Cluster ID.

Request Parameters

Table 2 Request body parameters

Parameter

Mandatory

Type

Description

node_group_name

Yes

String

Node group name. This parameter is mandatory. If resource_pool_name is set to default, the auto scaling policies are created by node group. If resource_pool_name is not set to default, policies of the resource pool corresponding to the node group are created.

resource_pool_name

Yes

String

Pool name. This parameter is mandatory. If the cluster version does not support auto scaling for a specified resource pool, set this parameter to default. If this parameter is not default, the auto scaling policy of the specified resource pool is deleted.

auto_scaling_policy

No

AutoScalingPolicyInfo object

Auto scaling rule. For details about the parameters, see Table 3.

Table 3 AutoScalingPolicyInfo

Parameter

Mandatory

Type

Description

auto_scaling_enable

Yes

Boolean

Whether to enable the auto scaling policy.

min_capacity

Yes

Integer

Minimum number of nodes allowed in the node group. Value range: [0, 500]

max_capacity

Yes

Integer

The maximum number of nodes in the node group. Value range: [0, 500]

resources_plans

No

Array of ResourcesPlan objects

Resource plans. For details, see Table 4.

If this parameter is left blank, the resource plan is disabled.

When auto_scaling_enable is set to true, either this parameter or rules must be configured.

rules

No

Array of Rule objects

Auto scaling rules. For details, see Table 5.

When auto_scaling_enable is set to true, either this parameter or resources_plans must be configured.

tags

No

Array of Tag objects

Tags of an auto scaling rule. For details about the parameters, see Table 7.

Table 4 ResourcesPlan

Parameter

Mandatory

Type

Description

period_type

Yes

String

The cycle type of a resource plan. Currently, only the following cycle type is supported:

daily

start_time

Yes

String

The start time of a resource plan. The value is in the format of hour:minute, indicating that the time ranges from 00:00 to 23:59.

end_time

Yes

String

The end time of a resource plan. The value is in the same format as that of start_time. The interval between end_time and start_time must be greater than or equal to 30 minutes.

min_capacity

Yes

Integer

The minimum number of reserved nodes in a node group in a resource plan. Value range: [0, 500]

max_capacity

Yes

Integer

The maximum number of reserved nodes in a node group in a resource plan. Value range: [0, 500]

effective_days

No

Array of strings

The effective date of a resource plan. If this parameter is left blank, it indicates that the resource plan takes effect every day. The options are as follows:

MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, and SUNDAY

Table 5 Rule

Parameter

Mandatory

Type

Description

name

Yes

String

The name of an auto scaling rule. A cluster name can contain only 1 to 64 characters. Only letters, digits, hyphens (-), and underscores (_) are allowed. Rule names must be unique in a node group.

description

No

String

The description about an auto scaling rule. It contains a maximum of 1,024 characters.

adjustment_type

Yes

String

The adjustment type of an auto scaling rule. The options are as follows:

  • scale_out: cluster scale-out
  • scale_in: cluster scale-in

cool_down_minutes

Yes

Integer

The cluster cooling time after an auto scaling rule is triggered, in minutes, during which period no auto scaling operation is performed. The value ranges from 0 to 10080. One week is equal to 10,080 minutes.

scaling_adjustment

Yes

Integer

The number of cluster nodes that can be adjusted at a time. Value range: [1, 100]

trigger

Yes

Trigger object

Condition for triggering a rule. For details, see Table 6.

Table 6 Trigger

Parameter

Mandatory

Type

Description

metric_name

Yes

String

Metric name. This triggering condition makes a judgment according to the value of the metric. A metric name contains a maximum of 64 characters.

metric_value

Yes

String

The metric threshold to trigger a rule.

The value must be an integer or a number with two decimal places.

comparison_operator

No

String

The metric judgment operator. The options are as follows:

  • LT: less than
  • GT: greater than
  • LTOE: less than or equal to
  • GTOE: greater than or equal to

evaluation_periods

Yes

Integer

The number of consecutive five-minute periods, during which a metric threshold is reached. The value ranges from 1 to 288.

Table 7 Tag

Parameter

Mandatory

Type

Description

key

Yes

String

The tag key.

  • It contains a maximum of 36 Unicode characters and cannot be an empty string.
  • The tag key cannot start or end with spaces or contain non-printable ASCII characters (0–31) and special characters (=*<>\,|/).
  • The tag key of a resource must be unique.

value

Yes

String

The tag value.

  • The value can contain 0 to 43 unicode characters.
  • The tag value cannot start or end with spaces or contain non-printable ASCII characters (0–31) and special characters (=*<>\,|/).

Response Parameters

None

Example Request

Create an auto scaling policy, set the number of node groups in node_group_1 to 0 to 5, and configure two scaling rules. If the value of YARNAppRunning is greater than or equal to 75 for one 5-minute period, add one Task node. If the value of YARNAppRunning is less than or equal to 25 for one 5-minute period, stop one Task node. The cooling duration is 20 minutes, and the aaa=bbb label is added to the involved nodes.

/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"
}

Example Response

None

Status Codes

For details, see Status Codes.

Error Codes

See Error Codes.