Updated on 2025-11-19 GMT+08:00

Creating a Node Pool

Function

This API is used to create a node pool. This API is used when you need to create a node pool with specified configurations when you need to expand compute resources, optimize resource allocation, or deploy new services. Before using this API, ensure that you have the administrator permission and the node pool parameters (such as the number of nodes, specifications, and network configurations) are correctly set. After the creation, the node pool will be created and be available, and the related node information will be recorded. If you do not have the required permission, the parameter settings are incorrect, or system resources are insufficient, the API will return an error message.

Debugging

You can debug this API through automatic authentication in API Explorer or use the SDK sample code generated by API Explorer.

URI

POST /v2/{project_id}/pools/{pool_name}/nodepools

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Definition: User project ID. For details, see Obtaining a Project ID and Name.

Constraints: N/A

Range: N/A

Default Value: N/A

pool_name

Yes

String

Definition: Resource pool name.

Constraints: N/A

Range: N/A

Default Value: N/A

Request Parameters

Table 2 Request body parameters

Parameter

Mandatory

Type

Description

apiVersion

Yes

String

Definition: API version.

Range:

  • v2

kind

Yes

String

Definition: Node pool type.

Range:

  • NodePool: node pool

metadata

Yes

CreateNodePoolMetaVO object

Definition: Node pool metadata.

spec

No

NodePoolSpec object

Definition: Node pool expectation.

Table 3 CreateNodePoolMetaVO

Parameter

Mandatory

Type

Description

name

Yes

String

Definition: Node pool name.

Constraints: N/A

Range: N/A

Default Value: N/A

annotations

No

CreateNodePoolAnnotations object

Definition: Node pool annotations.

Constraints: N/A

Range: N/A

Default Value: N/A

Table 4 CreateNodePoolAnnotations

Parameter

Mandatory

Type

Description

os.modelarts/billing.mode

No

String

Definition: Billing mode.

Constraints: N/A

Range:

  • 0: pay-per-use

  • 1: yearly/monthly

Default Value: N/A

os.modelarts/period.num

No

String

Definition: Subscription period on a yearly/monthly basis, for example, 2. This parameter is mandatory when the billing mode is yearly/monthly.

Constraints: N/A

Range: N/A

Default Value: N/A

os.modelarts/period.type

No

String

Definition: Subscription type on a yearly/monthly basis. This parameter is mandatory when the billing mode is yearly/monthly.

Constraints: N/A

Range:

  • 2: month

  • 3: year

  • 4: hour

Default Value: N/A

os.modelarts/auto.renew

No

String

Definition: Specifies whether to automatically renew the subscription.

Constraints: N/A

Range:

  • 0: auto-renewal disabled

  • 1: auto-renewal enabled

Default Value: 0

os.modelarts/promotion.info

No

String

Definition: Discount selected on the operations platform.

Constraints: N/A

Range: N/A

Default Value: N/A

os.modelarts/service.console.url

No

String

Definition: URL of the page displayed after the subscription order is paid.

Constraints: N/A

Range: N/A

Default Value: N/A

os.modelarts/order.id

No

String

Definition: Order ID, which is mandatory for creating a yearly/monthly resource or changing the billing mode.

Constraints: N/A

Range: N/A

Default Value: N/A

Table 5 NodePoolSpec

Parameter

Mandatory

Type

Description

resources

Yes

PoolResource object

Definition: List of resources in a node pool, including resource flavors, quantity, and custom configurations.

Range: N/A

Table 6 PoolResource

Parameter

Mandatory

Type

Description

flavor

Yes

String

Definition: Resource flavor name, for example, modelarts.vm.gpu.t4u8.

Range: N/A

count

Yes

Integer

Definition: Committed specifications.

Range: N/A

maxCount

Yes

Integer

Definition: Elastic usage of the resource flavor. This parameter value is the same the count value in a physical pool. It is greater than or equal to the count value in a logical pool.

Range: N/A

azs

No

Array of PoolNodeAz objects

Definition: AZ distribution of the node pool.

nodePool

No

String

Definition: Node pool name, for example, nodePool-1.

Range: N/A

taints

No

Array of Taints objects

Definition: Taints to be added to nodes to set anti-affinity. This parameter cannot be specified for a non-privileged pool.

labels

No

Map<String,String>

Definition: Kubernetes label, in key-value pair format.

Range: N/A

tags

No

Array of UserTags objects

Definition: Resource tag. This parameter cannot be specified for a non-privileged pool.

Range: N/A

network

No

NodeNetwork object

Definition: Network configuration. This parameter cannot be specified for a non-privileged pool.

extendParams

No

Map<String,String>

Definition: Custom configuration parameters.

  • dockerBaseSize: Specify the container engine space size of a resource pool node. The value 0 indicates that the size is not limited.

creatingStep

No

CreatingStep object

Definition: Information about batch creation.

os

No

Os object

Definition: OS image information.

Table 7 PoolNodeAz

Parameter

Mandatory

Type

Description

az

Yes

String

Definition: AZ name.

Range: N/A

count

Yes

Integer

Definition: Number of AZ resource instances.

Range: N/A

Table 8 Taints

Parameter

Mandatory

Type

Description

key

Yes

String

Definition: Key.

Range: N/A

value

No

String

Value.

effect

Yes

String

Effect.

Table 9 UserTags

Parameter

Mandatory

Type

Description

key

Yes

String

Definition: Key. The value cannot start with CCE- or __type_baremetal.

Range: N/A

value

Yes

String

Value.

Table 10 NodeNetwork

Parameter

Mandatory

Type

Description

vpc

No

String

  • Definition: VPC ID.

Constraints: N/A

Range: N/A

Default Value: N/A

subnet

No

String

Definition: Subnet ID.

Constraints: N/A

Range: N/A

Default Value: N/A

securityGroups

No

Array of strings

Definition: Security group ID set.

Constraints: N/A

Table 11 CreatingStep

Parameter

Mandatory

Type

Description

step

No

Integer

Definition: Step of a supernode.

Constraints: N/A

Range: Only the step contained in the resource specification details is supported.

Default Value: N/A

type

No

String

Definition: Batch creation type.

Constraints: N/A

Range:

  • hyperinstance: supernode

Default Value: N/A

Table 12 Os

Parameter

Mandatory

Type

Description

name

No

String

Definition: OS name.

Range: N/A

imageId

No

String

Definition: OS image ID.

Range: N/A

imageType

No

String

Definition: OS image type.

Range:

  • private: private image

Response Parameters

Status code: 200

Table 13 Response body parameters

Parameter

Type

Description

apiVersion

String

Definition: API version.

Range:

  • v2

kind

String

Definition: Node pool type.

Range:

  • NodePool: node pool

metadata

CreateNodePoolMetaVO object

Definition: Node pool metadata.

spec

NodePoolSpec object

Definition: Node pool expectation.

Table 14 CreateNodePoolMetaVO

Parameter

Type

Description

name

String

Definition: Node pool name.

Constraints: N/A

Range: N/A

Default Value: N/A

annotations

CreateNodePoolAnnotations object

Definition: Node pool annotations.

Constraints: N/A

Range: N/A

Default Value: N/A

Table 15 CreateNodePoolAnnotations

Parameter

Type

Description

os.modelarts/billing.mode

String

Definition: Billing mode.

Constraints: N/A

Range:

  • 0: pay-per-use

  • 1: yearly/monthly

Default Value: N/A

os.modelarts/period.num

String

Definition: Subscription period on a yearly/monthly basis, for example, 2. This parameter is mandatory when the billing mode is yearly/monthly.

Constraints: N/A

Range: N/A

Default Value: N/A

os.modelarts/period.type

String

Definition: Subscription type on a yearly/monthly basis. This parameter is mandatory when the billing mode is yearly/monthly.

Constraints: N/A

Range:

  • 2: month

  • 3: year

  • 4: hour

Default Value: N/A

os.modelarts/auto.renew

String

Definition: Specifies whether to automatically renew the subscription.

Constraints: N/A

Range:

  • 0: auto-renewal disabled

  • 1: auto-renewal enabled

Default Value: 0

os.modelarts/promotion.info

String

Definition: Discount selected on the operations platform.

Constraints: N/A

Range: N/A

Default Value: N/A

os.modelarts/service.console.url

String

Definition: URL of the page displayed after the subscription order is paid.

Constraints: N/A

Range: N/A

Default Value: N/A

os.modelarts/order.id

String

Definition: Order ID, which is mandatory for creating a yearly/monthly resource or changing the billing mode.

Constraints: N/A

Range: N/A

Default Value: N/A

Table 16 NodePoolSpec

Parameter

Type

Description

resources

PoolResource object

Definition: List of resources in a node pool, including resource flavors, quantity, and custom configurations.

Range: N/A

Table 17 PoolResource

Parameter

Type

Description

flavor

String

Definition: Resource flavor name, for example, modelarts.vm.gpu.t4u8.

Range: N/A

count

Integer

Definition: Committed specifications.

Range: N/A

maxCount

Integer

Definition: Elastic usage of the resource flavor. This parameter value is the same the count value in a physical pool. It is greater than or equal to the count value in a logical pool.

Range: N/A

azs

Array of PoolNodeAz objects

Definition: AZ distribution of the node pool.

nodePool

String

Definition: Node pool name, for example, nodePool-1.

Range: N/A

taints

Array of Taints objects

Definition: Taints to be added to nodes to set anti-affinity. This parameter cannot be specified for a non-privileged pool.

labels

Map<String,String>

Definition: Kubernetes label, in key-value pair format.

Range: N/A

tags

Array of UserTags objects

Definition: Resource tag. This parameter cannot be specified for a non-privileged pool.

Range: N/A

network

NodeNetwork object

Definition: Network configuration. This parameter cannot be specified for a non-privileged pool.

extendParams

Map<String,String>

Definition: Custom configuration parameters.

  • dockerBaseSize: Specify the container engine space size of a resource pool node. The value 0 indicates that the size is not limited.

creatingStep

CreatingStep object

Definition: Information about batch creation.

os

Os object

Definition: OS image information.

Table 18 PoolNodeAz

Parameter

Type

Description

az

String

Definition: AZ name.

Range: N/A

count

Integer

Definition: Number of AZ resource instances.

Range: N/A

Table 19 Taints

Parameter

Type

Description

key

String

Definition: Key.

Range: N/A

value

String

Value.

effect

String

Effect.

Table 20 UserTags

Parameter

Type

Description

key

String

Definition: Key. The value cannot start with CCE- or __type_baremetal.

Range: N/A

value

String

Value.

Table 21 NodeNetwork

Parameter

Type

Description

vpc

String

  • Definition: VPC ID.

Constraints: N/A

Range: N/A

Default Value: N/A

subnet

String

Definition: Subnet ID.

Constraints: N/A

Range: N/A

Default Value: N/A

securityGroups

Array of strings

Definition: Security group ID set.

Constraints: N/A

Table 22 CreatingStep

Parameter

Type

Description

step

Integer

Definition: Step of a supernode.

Constraints: N/A

Range: Only the step contained in the resource specification details is supported.

Default Value: N/A

type

String

Definition: Batch creation type.

Constraints: N/A

Range:

  • hyperinstance: supernode

Default Value: N/A

Table 23 Os

Parameter

Type

Description

name

String

Definition: OS name.

Range: N/A

imageId

String

Definition: OS image ID.

Range: N/A

imageType

String

Definition: OS image type.

Range:

  • private: private image

Status code: 400

Table 24 Response body parameters

Parameter

Type

Description

error_code

String

  • Definition: ModelArts error code.

Range: N/A

error_msg

String

Definition: Error message.

Range: N/A

Example Requests

Create a node pool.

POST https://{endpoint}/v2/{project_id}/pools/{pool_name}/nodepools

{
  "kind" : "NodePool",
  "apiVersion" : "v2",
  "metadata" : {
    "name" : "nodepool-1",
    "annotations" : { }
  },
  "spec" : {
    "resources" : {
      "nodePool" : "nodepool-1",
      "flavor" : "modelarts.vm.2u4g.dcc",
      "count" : 1,
      "maxCount" : 1,
      "network" : {
        "vpc" : "277e9abc-0e6b-431a-9232-cfd25d5fc566",
        "subnet" : "03796378-c356-4c14-826b-e4913aa9c8b9",
        "securityGroups" : [ "0a15b48d-06f1-41e4-b782-ade90087bf59" ]
      }
    }
  }
}

Example Responses

Status code: 200

OK.

{
  "kind" : "NodePool",
  "apiVersion" : "v2",
  "metadata" : {
    "name" : "nodepool-1",
    "annotations" : { }
  },
  "spec" : {
    "resources" : {
      "nodePool" : "nodepool-1",
      "flavor" : "modelarts.vm.2u4g.dcc",
      "count" : 1,
      "maxCount" : 1,
      "network" : {
        "vpc" : "277e9abc-0e6b-431a-9232-cfd25d5fc566",
        "subnet" : "03796378-c356-4c14-826b-e4913aa9c8b9",
        "securityGroups" : [ "0a15b48d-06f1-41e4-b782-ade90087bf59" ]
      }
    }
  }
}

Status code: 400

Bad request

{
  "error_code" : "ModelArts.50004000",
  "error_msg" : "Bad request."
}

Status Codes

Status Code

Description

200

OK.

400

Bad request

Error Codes

See Error Codes.