Updated on 2024-11-06 GMT+08:00

Creating a Node Pool

Function

This API is used to create a node pool in a specified cluster. This API can be called only when the cluster is in the available, scaling-out, or scaling-in state.

When creating a node pool in a CCE Turbo cluster of v1.21 or earlier, you can bind security groups to the node pool. A maximum of five security groups can be bound to a node pool.

After the security groups of a node pool are updated, the update takes effect only for newly created pods. You are advised to evict the original pods on the node.

If there is no cluster, create one.

The URL for cluster management is in the format of https://Endpoint/uri, where uri specifies the resource path for API access.

Calling Method

For details, see Calling APIs.

URI

POST /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Details:

Project ID. For details about how to obtain the value, see How to Obtain Parameters in the API URI.

Constraints:

None

Options:

Project IDs of the account

Default value:

N/A

cluster_id

Yes

String

Details:

Cluster ID. For details about how to obtain the value, see How to Obtain Parameters in the API URI.

Constraints:

None

Options:

Cluster IDs

Default value:

N/A

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

Content-Type

Yes

String

Details:

Request body type or format

Constraints:

The GET method is not verified.

Options:

  • application/json

  • application/json;charset=utf-8

  • application/x-pem-file

Default value:

N/A

X-Auth-Token

Yes

String

Details:

Requests for calling an API can be authenticated using either a token or AK/SK. If token-based authentication is used, this parameter is mandatory and must be set to a user token. For details, see Obtaining a User Token.

Constraints:

None

Options:

N/A

Default value:

N/A

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

kind

Yes

String

Details:

API type

Constraints:

The value cannot be changed.

Options:

N/A

Default value:

NodePool

apiVersion

Yes

String

Details:

API version

Constraints:

The value cannot be changed.

Options:

N/A

Default value:

v3

metadata

Yes

NodePoolMetadata object

Details:

Metadata of a node pool

Constraints:

None

spec

Yes

NodePoolSpec object

Details:

Node pool specifications

Constraints:

This field is optional for updating a node pool.

status

No

NodePoolStatus object

Details:

Node pool status

Constraints:

None

Table 4 NodePoolMetadata

Parameter

Mandatory

Type

Description

name

Yes

String

Details:

Node pool name

Constraints:

You cannot create node pools named DefaultPool.

Options:

Enter 1 to 50 characters starting with a lowercase letter and not ending with a hyphen (-). Only lowercase letters, digits, and hyphens (-) are allowed.

Default value:

N/A

uid

No

String

Details:

UID of a node pool

Constraints:

The value is automatically generated after the object is created. A user-defined value will not take effect.

Options:

N/A

Default value:

N/A

annotations

No

Map<String,String>

Details:

Annotations of a node pool in key-value pairs

Constraints:

This parameter is used only for query and cannot be input through a request. Entered data of this parameter is invalid.

updateTimestamp

No

String

Details:

Time when a node pool was updated

Constraints:

The value is automatically recorded when a node pool is updated and cannot be specified.

Options:

N/A

Default value:

N/A

creationTimestamp

No

String

Details:

Time when a node pool was created

Constraints:

The value is automatically recorded when a node pool is created and cannot be specified.

Options:

N/A

Default value:

N/A

Table 5 NodePoolSpec

Parameter

Mandatory

Type

Description

type

No

String

Details:

Node pool type

Constraints:

None

Options:

  • vm: ECS

  • ElasticBMS: C6 general computing-plus BMS. An example flavor is c6.22xlarge.2.physical.

  • pm: BMS

Default value:

vm

nodeTemplate

Yes

NodeSpec object

Details:

Detailed parameters of a node pool template

Constraints:

None

initialNodeCount

No

Integer

Details:

The initial number of nodes in a node pool. The obtained value is the desired number of nodes in the node pool.

Constraints:

None

Options:

Values that are greater than or equal to 0 and less than or equal to the cluster scale

Default value:

0

autoscaling

No

NodePoolNodeAutoscaling object

Details:

Auto scaling parameters

Constraints:

None

nodeManagement

No

NodeManagement object

Details:

Node management configuration

Constraints:

None

podSecurityGroups

No

Array of SecurityID objects

Details:

Security group configuration

Constraints:

None

extensionScaleGroups

No

Array of ExtensionScaleGroup objects

Details:

Configuration list of the extended scaling groups in a node pool. For details, see the definition of ExtensionScaleGroup.

Constraints:

None

customSecurityGroups

No

Array of strings

Details:

Custom security group configuration for a node pool. New nodes added to a node pool can be bound to a specified security group.

  • Specifying no security group ID will add the new nodes to the default node security group.

  • Specifying a valid security group ID will put new nodes in that security group.

  • When specifying a security group, do not modify the port rules on which CCE depends. For details, see How Can I Configure a Security Group Rule in a Cluster?

Constraints:

None

Table 6 NodeSpec

Parameter

Mandatory

Type

Description

flavor

Yes

String

Details:

Node flavors. For details about the node flavors supported by CCE clusters, see Node Specifications.

Constraints:

None

Options:

N/A

Default value:

N/A

az

Yes

String

Details:

AZ where the node to be created is located. You need to specify the AZ name. Random AZs will not be allocated to a node created using APIs.

For details about AZs supported by CCE, see Regions and Endpoints.

Constraints:

When you are creating a node pool and configuring a scaling group, this parameter cannot be set to random.

Options:

N/A

Default value:

N/A

os

No

String

Details:

Node OS. For details about the supported OSs, see Node OSs.

Constraints:

  • If the selected OS is not supported by the current cluster version, it will be automatically replaced with a supported OS of the same series.

  • If alpha.cce/NodeImageID in extendParam is specified during node creation, you do not need to configure this parameter.

  • If this parameter is not specified, CCE automatically selects a supported OS version based on the cluster version.

  • This parameter is mandatory when creating a node pool.

  • If you are using shared disk space when creating a node, this parameter is mandatory. Specifically, the disk initialization configuration management parameter storage is used and the name field of virtualSpaces in StorageGroups is set to share.

Options:

N/A

Default value:

N/A

login

Yes

Login object

Details:

Node login mode. Either the key pair or password must be used for login.

Constraints:

This parameter cannot be modified when a node pool is being updated.

rootVolume

Yes

Volume object

Details:

Disk information of a node

Constraints:

None

dataVolumes

Yes

Array of Volume objects

Details:

Data disk parameters of a node. For DeC nodes, the parameter details are the same as those in rootVolume.

Constraints:

A VM can have up to 16 disks attached, while a BMS can only have up to 10 disks attached. The maximum number of disks that can be attached to either a VM or BMS is limited by their respective maximum disk limits. (You can add more data disks to each of your nodes through the CCE console or APIs.)

The data disk used by the container runtime and kubelet cannot be detached, or the node will become unavailable.

storage

No

Storage object

Details:

Disk initialization management parameter.

This parameter is complex to configure. For details, see Attaching Disks to a Node.

Constraints:

  • If a node has both local and EVS disks attached, make sure to not keep the default value for this parameter, or it may result in unexpected disk partitions.

  • If you want to change the value range of a data disk to 20 to 32768, do not use the default value.

  • If you want to use the shared disk space (with the runtime and Kubernetes partitions cancelled), do not retain the default value of this parameter. For details about the shared disk space, see Space Allocation of a Data Disk.

  • If you want to store system components in the system disk, do not use the default value.

publicIP

No

NodePublicIP object

Details:

EIP of a node

Constraints:

This parameter is not supported when you add a node during node pool creation.

nodeNicSpec

No

NodeNicSpec object

Details:

ENI of a node

Constraints:

None

count

No

Integer

Details:

Number of nodes to be created in batches

Constraints:

This parameter can be left blank when it is used for a node pool.

Options:

Positive integers that are greater than or equal to 1 and less than or equal to the maximum limit

Default value:

N/A

billingMode

No

Integer

Details:

Billing mode of a node

Constraints:

None

Options:

  • 0: pay-per-use

  • 1: yearly/monthly

  • 2: (Discarded) yearly/monthly billing with auto payment enabled

Default value:

N/A

taints

No

Array of Taint objects

Details:

Taints, which can be added to nodes for anti-affinity configuration. Each taint contains the following parameters:

  • Key: Enter 1 to 63 characters starting and ending with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed. A DNS subdomain can be prefixed to a key.

  • Value: Enter 1 to 63 characters starting and ending with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed.

  • Effect: Available options are NoSchedule, PreferNoSchedule, and NoExecute.

    When creating a node, you can specify the initial value for this parameter and this field is not returned during query. In node pools, the initial value can be specified in the node template and this field is returned during query. In other scenarios, this field is not returned during query.

Example:

"taints": [{
  "key": "status",
  "value": "unavailable",
  "effect": "NoSchedule"
}, {
  "key": "looks",
  "value": "bad",
  "effect": "NoSchedule"
}]

Constraints:

A maximum of 20 taints can be configured.

k8sTags

No

Map<String,String>

Details:

Defined in key-value pairs.

  • Key: Enter 1 to 63 characters starting and ending with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed. A DNS subdomain containing a maximum of 253 characters (such as example.com/my-key) can be prefixed to a key.

  • Value: The value can be left blank or contain 1 to 63 characters that start and end with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed.

    When creating a node, you can specify the initial value for this parameter and this field is not returned during query. In node pools, the initial value can be specified in the node template and this field is returned during query. In other scenarios, this field is not returned during query.

Example:

"k8sTags": {
  "key": "value"
}

Constraints:

A maximum of 20 key-value pairs are allowed.

ecsGroupId

No

String

Details:

ECS group ID. If this parameter is specified, nodes will be created in the specific ECS group.

Constraints:

This configuration does not take effect when a node pool is created. To ensure that all nodes in a node pool are in the same ECS group, configure nodeManagement in the node pool.

Options:

N/A

Default value:

N/A

dedicatedHostId

No

String

Details:

ID of the DeH to which nodes will be scheduled.

Constraints:

This parameter is not supported when you add a node during node pool creation.

userTags

No

Array of UserTag objects

Details:

Cloud server tag (resource tag). When creating a node, you can specify the initial value for this parameter and this field is not returned during query. In node pools, the initial value can be specified in the node template and this field is returned during query. In other scenarios, this field is not returned during query.

Constraints:

  • The key of a tag must be unique. The maximum number of custom tags supported by CCE varies depending on regions and cannot exceed 8.

  • A tag key can have a maximum of 36 characters. It can only contain letters, digits, Unicode characters, and special characters (-_).

runtime

No

Runtime object

Details:

Container runtime

  • Clusters earlier than v1.25: The default value is docker.

  • Clusters of v1.25 or later: The default value varies with the OSs.

  • For nodes running EulerOS 2.5 or EulerOS 2.8, the default container runtime is docker. For nodes running other OSs, the default container runtime is containerd.

Constraints:

None

initializedConditions

No

Array of strings

Details:

Custom initialization flag, which is left blank by default.

Before CCE nodes are initialized, they are tainted with node.cloudprovider.kubernetes.io/uninitialized to prevent pods from being scheduled to them. When creating a node, you can specify the initializedConditions parameter to control the taint removal time. By default, the timeout interval is not configured.

Example:

  1. Create a node and add parameter "initializedConditions": ["CCEInitial", "CustomedInitial"].

  2. After custom initialization is complete, CCE will call a Kubernetes API (for example, PATCH /v1/nodes/{node_ip}/status) to update the node conditions by adding two labels of types CCEInitial and CustomedInitial and setting the status to True, as shown in the following:

status:
  conditions:
  - type: CCEInitial
    status: 'True'
  - type: CustomedInitial
    status: 'True'
  1. CCE polls status.Conditions of nodes to check whether there are conditions of types CCEInitial and CustomedInitial. If such conditions exist and the status is True, the node initialization is complete and the initialization taint is removed.

  2. initializedConditions allows you to configure a timeout period during node creation. For example, "initializedConditions": ["CCEInitial:15m", "CustomedInitial:15m"] indicates that the timeout period is 15 minutes. After the timeout period is reached, the initialization conditions will be automatically ignored and the initialization taint will be removed when CCE polls the node.

Constraints:

  • The timeout interval in initializedConditions ranges from 1 to 99 seconds.

  • Each value has 1 to 20 characters, which must consist of letters and digits.

  • The maximum number of flags cannot exceed 2.

  • The unit of the timeout period is minute (m).

extendParam

No

NodeExtendParam object

Details:

Extended parameters for creating a node

Constraints:

None

hostnameConfig

No

HostnameConfig object

Details:

Kubernetes node name configuration parameter

Constraints:

The supported cluster version is v1.23.6-r0 to v1.25 or v1.25.2-r0 or later.

serverEnterpriseProjectID

No

String

Details:

Enterprise project ID of a server. CCE does not support features provided by EPS. This field is used only for synchronizing enterprise project IDs of servers.

Constraints:

To create a node or node pool, you can specify an existing enterprise project for it. If this field is left blank, it inherits the enterprise project attributes of the cluster that runs the node or node pool.

When updating a node pool, any configuration modifications you made will apply only to new nodes. You need to modify the enterprise projects of existing nodes on the EPS console.

Options:

N/A

Default value:

If no value is specified during update, this field will not be updated.

If this parameter is left blank, the cluster enterprise project is returned.

Table 7 Login

Parameter

Mandatory

Type

Description

sshKey

No

String

Details:

Name of the key pair used for login

Constraints:

None

Options:

N/A

Default value:

N/A

userPassword

No

UserPassword object

Details:

Password used for node login

Constraints:

None

Table 8 UserPassword

Parameter

Mandatory

Type

Description

username

No

String

Details:

Login account. The default value is root.

Constraints:

None

Options:

N/A

Default value:

root

password

Yes

String

Details:

Login password. If a username and password are used when a node is created, this field is shielded in the response body.

Constraints:

The password field must be salted during node creation. For details, see Adding a Salt in the password Field When Creating a Node.

Options:

A password must:

  • Contain 8 to 26 characters.

  • Contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters !@$%^-_=+[{}]:,./?

  • Not contain the username or the username spelled backwards.

Default value:

N/A

Table 9 Volume

Parameter

Mandatory

Type

Description

size

Yes

Integer

Details:

Disk size, in GiB

Constraints:

None

Options:

  • System disks: 40 to 1024

  • The first data disk: 20 to 32768 (When storage is not specified, this value range becomes 100 to 32768.)

  • Other data disks: 10 to 32768 (When storage is not specified, this value range becomes 100 to 32768.)

Default value:

N/A

volumetype

Yes

String

Details:

Disk type. For details about possible values, see the root_volume parameter in the API used to create an ECS.

Constraints:

None

Options:

  • SAS: high I/O SAS disks

  • SSD: ultra-high I/O SSD disks

  • SATA: common I/O SATA disks. SATA disks have been removed from EVS. You can find them attached only to existing nodes.

NOTE:

For details about disk types, see Disk Types and Performance.

Default value:

N/A

extendParam

No

Map<String,Object>

Details:

Extended disk parameters, defined in extendparam in the API used to create an ECS.

For details, see extendparam Field Description for Creating Disks.

Constraints:

None

cluster_id

No

String

Details:

ID of the storage pool used by the ECS system disk. This field is used only for DeC clusters and functions as dssPoolID, that is, the ID of the DSS storage pool.

To obtain the value, see the ID field in the API used to obtain details of a DSS storage pool.

Constraints:

None

Options:

N/A

Default value:

N/A

cluster_type

No

String

Details:

Storage class of the ECS system disk

Constraints:

None

Options:

This field is used only for DeC clusters, and the value is always dss.

Default value:

N/A

hw:passthrough

No

Boolean

Details:

  • Pay attention to this field if your ECS is SDI-compliant. If the value of this field is true, the created disk is of SCSI type.

  • If the node pool type is ElasticBMS, this field must be set to true.

  • If the node specification involves both local and EVS disks, configure the disk initialization parameters. For details, see Attaching Disks to a Node.

Constraints:

None

Options:

N/A

Default value:

N/A

metadata

No

VolumeMetadata object

Details:

EVS disk encryption information. This parameter is mandatory only when the system disk or data disk of the node to be created needs to be encrypted.

Constraints:

None

Table 10 VolumeMetadata

Parameter

Mandatory

Type

Description

__system__encrypted

No

String

Details:

Whether an EVS disk is encrypted. The value 0 indicates that the EVS disk is not encrypted, and the value 1 indicates that the EVS disk is encrypted.

Constraints:

None

Options:

N/A

Default value:

If this parameter does not appear, the disk is not encrypted.

__system__cmkid

No

String

Details:

CMK ID, which indicates encryption in metadata. This field is used with __system__encrypted.

Constraints:

None

Options:

N/A

Default value:

N/A

Table 11 Storage

Parameter

Mandatory

Type

Description

storageSelectors

Yes

Array of StorageSelectors objects

Details:

Disk selection. Matched disks are managed based on matchLabels and storageType settings. Disks are matched in sequence. The matching rule in the front is matched first.

Constraints:

None

storageGroups

Yes

Array of StorageGroups objects

Details:

A storage group consisting of multiple storage devices, which are used to divide storage space.

Constraints:

None

Table 12 StorageSelectors

Parameter

Mandatory

Type

Description

name

Yes

String

Details:

Name of a selector, which is used as the index of selectorNames in storageGroup.

Constraints:

The name of each selector must be unique.

Options:

N/A

Default value:

N/A

storageType

Yes

String

Details:

Storage type

Constraints:

  • The local storage type does not support disk selection. All local disks form a VG. Therefore, only one local storage selector is allowed.

  • The system storage type does not support disk selection. It is recommended that you use the system disk to store system components. As a result, only one storage selector of the system type is allowed, and the name must be cceUse.

Options:

Only evs (EVS disks), local (local disks), and system (system disks) are supported.

Default value:

N/A

matchLabels

No

matchLabels object

Details:

Matching field of an EVS disk

Constraints:

If storageType is set to system (system disk), you do not need to configure this parameter.

Options:

The size, volumeType, metadataEncrypted, metadataCmkid, and count fields in DataVolume are supported.

Default value:

N/A

Table 13 matchLabels

Parameter

Mandatory

Type

Description

size

No

String

Details:

Matched disk size, for example, 100. If this parameter is left blank, the disk size is not limited.

Constraints:

None

Options:

N/A

Default value:

N/A

volumeType

No

String

Details:

EVS disk type

Constraints:

None

Options:

SSD, GPSSD, SAS, ESSD, and SATA are supported. If this parameter is left blank, there is no restriction on the disk type.

Default value:

N/A

metadataEncrypted

No

String

Details:

Disk encryption identifier. If this parameter is set to 0, it specifies that the disk is not encrypted. If this parameter is set to 1, it specifies that the disk is encrypted. If this parameter is left blank, there is no restriction on the disk encryption identifier.

Constraints:

None

Options:

N/A

Default value:

N/A

metadataCmkid

No

String

Details:

CMK ID of an encrypted disk. The value is a string of 36 bytes. If this parameter is left blank, there is no restriction on the disk key ID.

Constraints:

None

Options:

N/A

Default value:

N/A

count

No

String

Details:

Number of disks to be selected. If this parameter is left blank, all disks of this type are selected.

Constraints:

None

Options:

N/A

Default value:

N/A

Table 14 StorageGroups

Parameter

Mandatory

Type

Description

name

Yes

String

Details:

Name of a virtual storage group, which must be unique

Constraints:

None

Options:

  • If cceManaged is set to true, the name field must be set to vgpaas.

  • If the data disk is used as a temporary storage volume, the name field must be set to vg-everest-localvolume-ephemeral.

  • If the data disk is used as a persistent storage volume, the name field must be set to vg-everest-localvolume-persistent.

Default value:

N/A

cceManaged

No

Boolean

Details:

Storage space to which Kubernetes and runtime belong. Only one group is set to true. If this parameter is left blank, the default value false is used.

Constraints:

None

Options:

N/A

Default value:

N/A

selectorNames

Yes

Array of strings

Details:

Corresponds to name in storageSelectors. One group can select multiple selectors, but one selector can be selected by only one group.

Constraints:

System components cannot be separately stored in the system disk and data disks. Therefore, when the selector type is set to system, only one selector can be selected for a group.

virtualSpaces

Yes

Array of VirtualSpace objects

Details:

Detailed management of space configurations in a group

Constraints:

None

Table 15 VirtualSpace

Parameter

Mandatory

Type

Description

name

Yes

String

Details:

Name of a virtualSpace. Only types of share, kubernetes, runtime, and user are supported.

Constraints:

None

Options:

  • Kubernetes: Kubernetes space configuration. lvmConfig needs to be configured.

  • runtime: runtime space configuration. runtimeConfig needs to be configured.

  • user: user space configuration. lvmConfig needs to be configured.

Default value:

N/A

size

Yes

String

Details:

Size of a virtualSpace. The value must be an integer in percentage, for example, 90%.

Constraints:

None

Options:

10 to 90. The sum of percentages of all virtualSpaces in a group cannot exceed 100%.

Default value:

N/A

lvmConfig

No

LVMConfig object

Details:

LVM configuration management, which is applicable to share, Kubernetes, and user space configuration

Constraints:

One virtualSpace supports only one config.

runtimeConfig

No

RuntimeConfig object

Details:

Runtime configuration management, which is applicable to runtime space configuration

Constraints:

One virtualSpace supports only one config.

Table 16 LVMConfig

Parameter

Mandatory

Type

Description

lvType

Yes

String

Details:

LVM write mode. linear indicates the linear mode. striped indicates the striped mode, in which multiple disks are used to form a strip to improve disk performance.

Constraints:

None

Options:

N/A

Default value:

N/A

path

No

String

Details:

Disk mount path. This parameter only takes effect in user configuration. The value can be an absolute path containing digits, uppercase letters, lowercase letters, periods (.), hyphens (-), and underscores (_).

Constraints:

Do not leave the path empty or set it to a key OS path such as the root directory. Key OS paths that cannot be entered:

/, /home, /home/, /bin, /bin/, /lib, /lib/, /root, /root/, /boot, /boot/, /dev, /dev/, /etc, /etc/, /lost+found, /lost+found/, /mnt, /mnt/, /proc, /proc/,/sbin, /sbin/, /srv, /srv/, /tmp, /tmp/, /var, /var/, /media, /media/, /opt, /opt/, /selinux, /selinux/, /sys, /sys/, /usr, /usr/, /opt/cloud/, /mnt/paas/, /home/paas/, /var/paas/, /var/lib/, /var/script/

Options:

N/A

Default value:

N/A

Table 17 RuntimeConfig

Parameter

Mandatory

Type

Description

lvType

Yes

String

Details:

LVM write mode. linear indicates the linear mode. striped indicates the striped mode, in which multiple disks are used to form a strip to improve disk performance.

Constraints:

None

Options:

N/A

Default value:

N/A

Table 18 NodePublicIP

Parameter

Mandatory

Type

Description

ids

No

Array of strings

Details:

IDs of existing EIPs

Constraints:

  • The quantity cannot be greater than the number of nodes to be created.

  • If ids has been specified, you do not need to configure count and eip.

count

No

Integer

Details:

Number of EIPs to be dynamically created

Constraints:

count and eip must be configured simultaneously.

Options:

N/A

Default value:

N/A

eip

No

NodeEIPSpec object

Details:

EIP configuration

Constraints:

This parameter is not supported when creating a node pool.

Table 19 NodeEIPSpec

Parameter

Mandatory

Type

Description

iptype

Yes

String

Details:

EIP type, specified in publicip.type in the API for assigning an EIP.

For details, see Assigning an EIP.

Constraints:

None

Options:

N/A

Default value:

N/A

bandwidth

No

NodeBandwidth object

Details:

Bandwidth parameters of the EIP

Constraints:

None

Table 20 NodeBandwidth

Parameter

Mandatory

Type

Description

chargemode

No

String

Details:

Bandwidth billing mode

NOTE:
  • Billed by bandwidth: The billing will be based on the data transmission rate (in Mbps) of public networks. This billing mode is recommended if your bandwidth usage is higher than 10%.

  • Billed by traffic: The billing is based on the total amount of data (in GB) transmitted over the public network. This mode is available only when you are creating a pay-per-use node. This billing mode is recommended if your bandwidth usage is lower than 10%.

Constraints:

None

Options:

  • If this field is not specified, the billing is based on bandwidth.

  • If the field value is empty, the billing is based on bandwidth.

  • If the field value is traffic, the billing is based on traffic.

  • If the value is out of the preceding options, the cloud server will fail to be created.

Default value:

N/A

size

No

Integer

Details:

Bandwidth size, specified in bandwidth.size in the API for assigning an EIP.

For details, see Assigning an EIP.

Constraints:

None

Options:

N/A

Default value:

N/A

sharetype

No

String

Details:

Bandwidth sharing type. Dedicated bandwidth is supported only. PER specifies dedicated bandwidth.

Constraints:

None

Options:

N/A

Default value:

N/A

Table 21 NodeNicSpec

Parameter

Mandatory

Type

Description

primaryNic

No

NicSpec object

Details:

Description of the primary ENI

Constraints:

None

extNics

No

Array of NicSpec objects

Details:

Extension ENI

Constraints:

This parameter is not supported when you add a node during node pool creation.

Table 22 NicSpec

Parameter

Mandatory

Type

Description

subnetId

No

String

Details:

Network ID of the subnet to which an ENI belongs. If subnetList is also configured for a node pool, the subnetList field is used for adding subnets to the node pool.

Constraints:

  • If subnetId is not specified when a primary ENI is creating, the cluster subnet will be used.

  • When creating an extension ENI, you must specify subnetId.

Options:

N/A

Default value:

N/A

fixedIps

No

Array of strings

Details:

The IP address of the primary ENI is specified using fixedIps. The number of IP addresses cannot be greater than the number of created nodes.

Constraints:

Either fixedIps or ipBlock can be specified. fiexdIps cannot be specified for extension ENIs.

ipBlock

No

String

Details:

CIDR format of the primary ENI IP address range. The IP address of the created node falls in this range.

Constraints:

Either fixedIps or ipBlock can be specified.

Options:

N/A

Default value:

N/A

subnetList

No

Array of strings

Details:

Network ID list of the subnet where the ENI resides. Multiple subnets can be configured for a node pool.

Constraints:

A maximum of 20 subnets can be configured.

Table 23 Taint

Parameter

Mandatory

Type

Description

key

Yes

String

Details:

Key

Constraints:

The value must contain 1 to 63 characters starting and ending with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed.

Options:

N/A

Default value:

N/A

value

No

String

Details:

Value

Constraints:

The value must contain 1 to 63 characters starting and ending with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed.

Options:

N/A

Default value:

N/A

effect

Yes

String

Details:

Effect

Constraints:

None

Options:

Available options are NoSchedule, PreferNoSchedule, and NoExecute.

Default value:

N/A

Table 24 UserTag

Parameter

Mandatory

Type

Description

key

No

String

Details:

Key of the cloud server tag

Constraints:

The value cannot start with CCE- or __type_baremetal.

Options:

A tag key can have a maximum of 36 characters. It can only contain letters, digits, Unicode characters, and special characters (-_).

Default value:

N/A

value

No

String

Details:

Value of the cloud server tag

Constraints:

None

Options:

A tag value can have a maximum of 43 characters. It can only contain letters, digits, Unicode characters, and special characters (-_).

Default value:

N/A

Table 25 Runtime

Parameter

Mandatory

Type

Description

name

No

String

Details:

Container runtime

Constraints:

None

Options:

N/A

Default value:

  • Clusters earlier than v1.25: The default value is docker.

  • Clusters of v1.25 or later: The default value varies with the OSs.

  • For nodes running EulerOS 2.5 or EulerOS 2.8, the default value is docker. For nodes running other OSs, the default value is containerd.

Table 26 NodeExtendParam

Parameter

Mandatory

Type

Description

ecs:performancetype

No

String

Details:

ECS flavor types. This field is returned in the response.

Constraints:

None

Options:

N/A

Default value:

N/A

orderID

No

String

Details:

Order ID

Constraints:

This parameter is returned in the response when the node is billed on a yearly/monthly basis with auto payment enabled (only in creation scenarios).

Options:

N/A

Default value:

N/A

productID

No

String

Details:

Product ID

Constraints:

This field is returned in the response when the node is billed on a yearly/monthly basis with auto payment enabled.

Options:

N/A

Default value:

N/A

maxPods

No

Integer

Details:

Maximum number of pods that can be created on a node, including the default system pods.

This limit prevents the node from being overloaded with pods.

The number of pods that can be created on a node is determined by multiple parameters. For details, see Maximum Number of Pods That Can Be Created on a Node.

Constraints:

None

Options:

16 to 256

Default value:

N/A

periodType

No

String

Details:

Subscription period type

Constraints:

  • As a request parameter, it is valid and mandatory only when billingMode is set to 1 (yearly/monthly billing) or 2 (yearly/monthly billing with auto payment enabled) (This option has been discarded).

  • As a response parameter, it is returned only when a yearly/monthly node is created.

Options:

  • month

  • year

Default value:

N/A

periodNum

No

Integer

Details:

Number of subscription periods

Constraints:

  • As a request parameter, it is valid and mandatory only when billingMode is set to 1 (yearly/monthly billing) or 2 (yearly/monthly billing with auto payment enabled) (This option has been discarded).

  • As a response parameter, it is returned only when a yearly/monthly node is created.

Options:

  • If periodType is month, the value ranges from 1 to 9.

  • If periodType is year, the value ranges from 1 to 3.

Default value:

N/A

isAutoRenew

No

String

Details:

Whether auto-renewal is enabled

Constraints:

This field is valid when billingMode is set to 1 or 2 (discarded). If not specified, auto-renewal is not enabled.

Options:

  • true: Auto-renewal is enabled.

  • false: Auto-renewal is not enabled.

Default value:

N/A

isAutoPay

No

String

Details:

Whether an order is automatically or manually paid

Constraints:

This field is valid when billingMode is set to 1 or 2 (discarded). If not specified when billingMode is set to 1, auto payment is not enabled. (Discarded) If not specified when billingMode is set to 2, auto payment is enabled.

Options:

  • true: Auto payment is enabled.

  • false: Auto payment is not enabled.

Default value:

N/A

DockerLVMConfigOverride

No

String

Details:

Docker data disk configuration item. (This parameter has been discarded. Use the storage field instead.) Example of the default configuration:

"DockerLVMConfigOverride":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear"

By default, if no VD disk is available, an error occurs because the data disk fails to be found. Specify diskType based on the actual drive letter type.

Constraints:

None

Options:

The following fields are included:

  • userLV: (Optional) size of the user space, for example, vgpaas/20%VG

  • userPath (Optional): mount path of the user space, for example, /home/wqt-test

  • diskType: disk type. Only evs, hdd, and ssd are supported.

  • lvType: type of a logic volume. The value can be linear or striped.

  • dockerThinpool: Docker space size, for example, vgpaas/60%VG

  • kubernetesLV: kubelet space size, for example, vgpaas/20%VG

    Default value:

    N/A

dockerBaseSize

No

Integer

Details:

Available disk space of a single container on a node (unit: G). This parameter has been discarded. Use containerBaseSize.

For details about how to allocate the space for the container runtime, see Space Allocation of a Data Disk.

Constraints:

When Device Mapper is used, it is recommended that dockerBaseSize be set to a value less than or equal to 80 GiB. If the value is too large, the container runtime may fail to be started due to long initialization. If there are special requirements for the container disk space, you can mount an external or local storage device.

  • The dockerBaseSize setting takes effect only on nodes running EulerOS or Huawei Cloud EulerOS 2.0 in clusters of the new version.

Options:

10 to 500

Default value:

If the value is not specified or is set to 0, the default value is used.

  • The default value is 10 in Device Mapper mode.

  • In OverlayFS mode, the available space of a single container is not limited by default.

containerBaseSize

No

Integer

Details:

Available disk space of a single container on a node (unit: G).

For details about how to allocate the space for the container runtime, see Space Allocation of a Data Disk.

Constraints:

When Device Mapper is used, it is recommended that containerBaseSize be set to a value less than or equal to 80 GiB. If the value is too large, the container runtime may fail to be started due to long initialization. If there are special requirements for the container disk space, you can mount an external or local storage device. In new versions, the Device Mapper mode is used only by BMSs in the same resource pool and is being discarded.

  • The containerBaseSize setting takes effect only on nodes running EulerOS or Huawei Cloud EulerOS 2.0 in clusters of the new version (v1.23.14-r0, v1.25.9-r0, v1.27.6-r0, v1.28.4-r0 or later).

  • This parameter cannot be updated when a node pool is being updated.

Options:

10 to 500

Default value:

If the value is not specified or is set to 0, the default value is used.

  • The default value is 10 in Device Mapper mode.

  • In OverlayFS mode, the available space of a single container is not limited by default.

publicKey

No

String

Details:

Public key of a node

Constraints:

None

Options:

N/A

Default value:

N/A

alpha.cce/preInstall

No

String

Details:

Pre-installation script.

The input value must be encoded using Base64. The method is as follows:

echo -n "*Content to be encoded*" | base64

Constraints:

The characters of both the pre-installation and post-installation scripts are centrally calculated, and the total number of characters after transcoding cannot exceed 10,240.

Options:

N/A

Default value:

N/A

alpha.cce/postInstall

No

String

Details:

Post-installation script.

The input value must be encoded using Base64. The method is as follows:

echo -n "*Content to be encoded*" | base64

Constraints:

The characters of both the pre-installation and post-installation scripts are centrally calculated, and the total number of characters after transcoding cannot exceed 10,240.

Options:

N/A

Default value:

N/A

alpha.cce/NodeImageID

No

String

Details:

This parameter is required when a custom image is used to create a BMS node.

Constraints:

None

Options:

N/A

Default value:

N/A

nicMultiqueue

No

String

Details:

  • Number of ENI queues. Example:

"[{\"queue\":4}]"

The following fields are included:

  • queue: number of ENI queues

  • Supported proportions are {"1":128, "2":92, "4":92, "8":32, "16":16, "28":9}. That is, if there is one queue, a maximum of 128 ENIs can be bound. If there are two queues, a maximum of 92 ENIs can be bound.

  • A larger number of ENI queues indicates higher performance but fewer ENIs can be bound. The queue settings cannot be changed after creation.

Constraints:

This field can be configured only for BMS nodes in CCE Turbo clusters.

Options:

N/A

Default value:

N/A

nicThreshold

No

String

Details:

  • ENI pre-binding thresholds. Example:

"0.3:0.6"
  • Low threshold (L): determines the minimum number of pre-bound ENIs (Min). Formula: Min = Total number of ENIs of the node × L

  • High threshold (H): determines the maximum number of pre-bound ENIs (Max). Formula: Max = Total number of ENIs of the node × H

  • Number of ENIs bound to a BMS node (B) and number of ENIs being used by pods (U): U + Min < B < U + Max

  • If the number of pre-bound ENIs on a BMS node is smaller than the minimum allowed, the system will bind more ENIs to make the numbers equal.

  • If the number of pre-bound ENIs on a BMS node is larger than the maximum allowed, the system periodically unbinds ENIs (about every 2 minutes) to make the numbers equal.

    Constraints:

  • This field can be configured only for BMS nodes in CCE Turbo clusters.

  • Pre-binding ENIs can speed up workload creation but occupies IP addresses.

Options:

Both the thresholds are one-decimal-place values ranging from 0.0 to 1.0. The low threshold must be smaller than or equal to the high one.

Default value:

N/A

chargingMode

No

Integer

Details:

Billing mode of a node. This parameter has been discarded. Use billingMode in NodeSpec instead.

Constraints:

None

Options:

N/A

Default value:

N/A

marketType

No

String

Details:

When creating a spot ECS, this parameter should be set to spot.

Constraints:

This parameter is valid only when billingMode is set to 0.

Options:

N/A

Default value:

N/A

spotPrice

No

String

Details:

The highest price per hour a user accepts for a spot ECS

Constraints:

  • This parameter takes effect only when billingMode is set to 0 and marketType is set to spot.

  • When billingMode is set to 0 and marketType is set to spot, if spotPrice is not specified, the pay-per-use price is used by default.

  • The spotPrice value must be less than or equal to the pay-per-use price and greater than or equal to the ECS market price.

Options:

N/A

Default value:

N/A

agency_name

No

String

Details:

Agency name.

An agency is created by a tenant administrator on Identity and Access Management (IAM) to provide temporary credentials for CCE nodes to access cloud servers.

This parameter is returned only when it is transferred during node creation.

Constraints:

None

Options:

N/A

Default value:

N/A

kubeReservedMem

No

Integer

Details:

Reserved node memory, which is reserved for Kubernetes components.

Constraints:

None

Options:

N/A

Default value:

N/A

systemReservedMem

No

Integer

Details:

Reserved node memory, which is reserved for system components.

Constraints:

None

Options:

N/A

Default value:

N/A

init-node-password

No

String

Details:

Node password. If this parameter is used as a response parameter, asterisks (*) will be displayed.

Constraints:

None

Options:

N/A

Default value:

N/A

Table 27 HostnameConfig

Parameter

Mandatory

Type

Description

type

Yes

String

Details:

Configuration type of the Kubernetes node name. The default value is privateIp.

Constraints:

  • The node names, Kubernetes node names, and VM names of the nodes configured with cceNodeName are the same. Node names cannot be changed. Once a VM name is altered on the ECS console, the node name cannot be modified accordingly during ECS synchronization.

  • To prevent conflicts between Kubernetes node names, a suffix is automatically added to the node name of a node configured with cceNodeName. The suffix consists of a hyphen (-) followed by five random lowercase letters and digits (0 to 9).

Options:

  • privateIp: Use the private node IP address the as the Kubernetes node name.

  • cceNodeName: Use the CCE node name as the Kubernetes node name.

Default value:

privateIp

Table 28 NodePoolNodeAutoscaling

Parameter

Mandatory

Type

Description

enable

No

Boolean

Details:

Whether to enable auto scaling

Constraints:

None

Options:

  • false: Auto scaling is disabled.

  • true: Auto scaling is enabled.

Default value:

false

minNodeCount

No

Integer

Details:

Minimum number of nodes that can be scaled in if auto scaling is enabled

Constraints:

None

Options:

Values that are greater than or equal to 0 and cannot be greater than the maximum number of nodes allowed by the cluster specifications

Default value:

0

maxNodeCount

No

Integer

Details:

Maximum number of nodes that can be added if auto scaling is enabled

Constraints:

None

Options:

Values that are greater than or equal to the value of minNodeCount and cannot be greater than the maximum number of nodes allowed by the cluster specifications

Default value:

0

scaleDownCooldownTime

No

Integer

Details:

How long nodes will be kept, in minutes. During this period, nodes added will not be deleted.

Constraints:

None

Options:

0 to 2147483646

Default value:

0

priority

No

Integer

Details:

Weight of a node pool. A node pool with a higher weight has a higher priority during scale-out.

Constraints:

None

Options:

N/A

Default value:

0

Table 29 NodeManagement

Parameter

Mandatory

Type

Description

serverGroupReference

No

String

Details:

Cloud server group ID. If this field is specified, all nodes in the node pool will be created in this group. The server group ID can be specified only when you are creating the node pool and cannot be changed.

Constraints:

If a cloud server group is specified, the number of nodes in the node pool cannot exceed the group quota.

Options:

N/A

Default value:

N/A

Table 30 SecurityID

Parameter

Mandatory

Type

Description

id

No

String

Details:

Security group ID

Constraints:

None

Options:

N/A

Default value:

N/A

Table 31 ExtensionScaleGroup

Parameter

Mandatory

Type

Description

metadata

No

ExtensionScaleGroupMetadata object

Details:

Basic information about an extended scaling group

Constraints:

None

spec

No

ExtensionScaleGroupSpec object

Details:

Configurations of an extended scaling group, which carry different configurations from those of the default scaling group

Constraints:

None

Table 32 ExtensionScaleGroupMetadata

Parameter

Mandatory

Type

Description

uid

No

String

Details:

UUID of an extended scaling group, which is automatically generated by the system

Constraints:

None

Options:

N/A

Default value:

N/A

name

No

String

Details:

Name of an extended scaling group

Constraints:

The value cannot be default.

Options:

The value can contain a maximum of 55 characters. Only digits, lowercase letters, and hyphens (-) are allowed.

Default value:

N/A

Table 33 ExtensionScaleGroupSpec

Parameter

Mandatory

Type

Description

flavor

No

String

Details:

Node flavors. For details about the node flavors supported by CCE clusters, see Node Specifications.

Constraints:

None

Options:

N/A

Default value:

N/A

az

No

String

Details:

Node AZ

Constraints:

None

Options:

N/A

Default value:

If this parameter is not specified or left blank, the default scaling group configurations take effect.

capacityReservationSpecification

No

CapacityReservationSpecification object

Details:

Capacity reservation configurations of an extended scaling group

Constraints:

None

autoscaling

No

ScaleGroupAutoscaling object

Details:

Auto scaling configurations of an extended scaling group

Constraints:

None

Table 34 CapacityReservationSpecification

Parameter

Mandatory

Type

Description

id

No

String

Details:

Private pool ID

Constraints:

This value can be ignored when preference is set to none.

Options:

N/A

Default value:

N/A

preference

No

String

Details:

Private pool capacity

Constraints:

If the value is none, the capacity reservation is not specified. If the value is targeted, the capacity reservation is specified. In this case, the ID cannot be left blank.

Options:

N/A

Default value:

none

Table 35 ScaleGroupAutoscaling

Parameter

Mandatory

Type

Description

enable

No

Boolean

Details:

Whether to enable auto scaling for a scaling group

Constraints:

None

Options:

  • false: Auto scaling is disabled.

  • true: Auto scaling is enabled.

Default value:

false

extensionPriority

No

Integer

Details:

Scaling group priority. A larger value indicates a higher priority.

Constraints:

None

Options:

N/A

Default value:

0

minNodeCount

No

Integer

Details:

Minimum number of nodes that can be kept in a scaling group during auto scaling

Constraints:

None

Options:

Values that are greater than or equal to 0 and cannot be greater than the maximum number of nodes allowed by the cluster specifications

Default value:

0

maxNodeCount

No

Integer

Details:

Maximum number of nodes that can be kept in a scaling group during auto scaling

Constraints:

None

Options:

Values that are greater than or equal to the value of minNodeCount, less than or equal to the maximum number of nodes allowed by the cluster specifications, and less than or equal to the maximum number of nodes in the node pool

Default value:

0

Table 36 NodePoolStatus

Parameter

Mandatory

Type

Description

currentNode

No

Integer

Details:

Total number of nodes in the current node pool (excluding the nodes that are being deleted)

Constraints:

None

Options:

N/A

Default value:

N/A

creatingNode

No

Integer

Details:

Number of nodes that are being created in the current node pool

Constraints:

None

Options:

N/A

Default value:

N/A

deletingNode

No

Integer

Details:

Number of nodes that are being deleted in the current node pool

Constraints:

None

Options:

N/A

Default value:

N/A

configurationSyncedNodeCount

No

Integer

Number of nodes that have synchronized with the node pool parameter configurations in the current node pool

phase

No

String

Details:

Node pool status

Constraints:

None

Options:

  • Null: The node pool is available. (The number of nodes in the current node pool has reached the expected value, and no node scaling is being performed.)

  • Synchronizing: The node pool is being scaled. (The number of nodes in the current node pool has not reached the expected value, and no node scaling is being performed.)

  • Synchronized: The node pool scaling is pending. (The number of nodes in the current node pool has not reached the expected value, or node scaling is being performed.)

  • SoldOut: The node pool cannot be scaled out. (This field is used in multiple scenarios, for example, resources in the node pool have been sold out or the resource quota is insufficient.)

NOTE:

The preceding node pool status has been discarded. It is reserved only for compatibility. Do not use it anymore. Use the following instead:

  • Node pool scaling status: You can obtain the status of the current node pool using parameters such as currentNode, creatingNode, or deletingNode.

  • Node pool scale-out: You can use conditions to obtain the detailed status of a node pool. Scalable can replace SoldOut.

  • Deleting: The node pool is being deleted.

  • Error: An error occurred.

Default value:

N/A

jobId

No

String

Details:

ID of a job executed on the node pool. This field is available only when the node pool is being deleted.

Constraints:

None

Options:

N/A

Default value:

N/A

conditions

No

Array of NodePoolCondition objects

Details:

Node pool status details. For details, see the definition of Condition.

Constraints:

None

scaleGroupStatuses

No

Array of ScaleGroupStatus objects

Details:

Detailed status of a scaling group. For details, see the definition of ScaleGroupStatus.

Constraints:

None

Table 37 ScaleGroupStatus

Parameter

Mandatory

Type

Description

name

No

String

Details:

Scaling group name

Constraints:

None

Options:

N/A

Default value:

N/A

uid

No

String

Details:

Scaling group UUID

Constraints:

None

Options:

N/A

Default value:

N/A

creationTimestamp

No

String

Details:

The time when a scaling group was created

Constraints:

None

Options:

N/A

Default value:

N/A

updateTimestamp

No

String

Details:

The time when a scaling group was updated

Constraints:

None

Options:

N/A

Default value:

N/A

phase

No

String

Details:

Scaling group status

Constraints:

None

Options:

  • Null: The scaling group is available. (The number of nodes in the current scaling group has reached the expected value, and no node scaling is being performed.)

  • Synchronizing: The scaling group is being scaled. (The number of nodes in the current scaling group has not reached the expected value, and no node scaling is being performed.)

  • Synchronized: The scaling is pending. (The number of nodes in the current scaling group has not reached the expected value, or node scaling is being performed.)

  • SoldOut: The scaling group cannot be scaled out. (This field is used in multiple scenarios, for example, resources in the node pool have been sold out or the resource quota is insufficient.)

NOTE:

The preceding scaling group status has been discarded. It is reserved only for compatibility. Do not use it anymore. Use the following instead:

  • Scaling status of a scaling group: You can obtain the status of the current scaling group using parameters such as desiredNodeCount, existingNodeCount, or upcomingNodeCount.

  • Scaling group scale-out: You can use conditions to obtain the detailed status of a scaling group. Scalable can replace SoldOut.

  • Deleting: The scaling group is being deleted.

  • Error: An error occurred.

Default value:

N/A

desiredNodeCount

No

Integer

Details:

Expected number of nodes in a scaling group

Constraints:

None

Options:

N/A

Default value:

N/A

unpaidScaleNodeCount

No

Integer

Details:

Number of nodes in an unpaid order

Constraints:

None

Options:

N/A

Default value:

N/A

existingNodeCount

No

existingNodeCount object

Details:

Statistics on existing nodes in a scaling group

Constraints:

None

upcomingNodeCount

No

upcomingNodeCount object

Details:

Statistics on the nodes to be added in a scaling group

Constraints:

None

scaleDownDisabledNodeCount

No

Integer

Details:

Number of nodes that cannot be deleted in a scaling group

Constraints:

None

Options:

N/A

Default value:

N/A

conditions

No

Array of NodePoolCondition objects

Details:

Scaling group status details. For details, see the definition of Condition.

Constraints:

None

Table 38 existingNodeCount

Parameter

Mandatory

Type

Description

postPaid

No

Integer

Details:

Number of pay-per-use nodes

Constraints:

None

Options:

N/A

Default value:

N/A

prePaid

No

Integer

Details:

Number of yearly/monthly nodes

Constraints:

None

Options:

N/A

Default value:

N/A

total

No

Integer

Details:

Total number of pay-per-use and yearly/monthly nodes

Constraints:

None

Options:

N/A

Default value:

N/A

Table 39 upcomingNodeCount

Parameter

Mandatory

Type

Description

postPaid

No

Integer

Details:

Number of pay-per-use nodes

Constraints:

None

Options:

N/A

Default value:

N/A

prePaid

No

Integer

Details:

Number of yearly/monthly nodes

Constraints:

None

Options:

N/A

Default value:

N/A

total

No

Integer

Details:

Total number of pay-per-use and yearly/monthly nodes

Constraints:

None

Options:

N/A

Default value:

N/A

Table 40 NodePoolCondition

Parameter

Mandatory

Type

Description

type

No

String

Details:

Condition type

Constraints:

None

Options:

  • Scalable: whether a node pool can be scaled out. If the status is False, node pool scale-out will not be triggered again.

  • QuotaInsufficient: Quotas on which node pool scale-out depends are insufficient, affecting the node pool scale-out status.

  • ResourceInsufficient: Resources on which node pool scale-out depends are insufficient, affecting the node pool scale-out status.

  • UnexpectedError: The node pool fails to be scaled out due to unexpected reasons, affecting the node pool scale-out status.

  • LockedByOrder: The yearly/monthly-billed node pool is locked due to an order. The value of Reason is the ID of the pending order.

  • Error: A node pool error occurred. A common trigger is deletion failure.

Default value:

N/A

status

No

String

Details:

Current status of the condition

Constraints:

None

Options:

  • True

  • False

Default value:

N/A

lastProbeTime

No

String

Details:

Time when the status was last checked

Constraints:

None

Options:

N/A

Default value:

N/A

lastTransitTime

No

String

Details:

Time when the status was last changed

Constraints:

None

Options:

N/A

Default value:

N/A

reason

No

String

Details:

Reason why the status was last changed

Constraints:

None

Options:

N/A

Default value:

N/A

message

No

String

Details:

Detailed description of the condition

Constraints:

None

Options:

N/A

Default value:

N/A

Response Parameters

Status code: 201

Table 41 Response body parameters

Parameter

Type

Description

kind

String

Details:

API type

Constraints:

The value cannot be changed.

Options:

N/A

Default value:

NodePool

apiVersion

String

Details:

API version

Constraints:

The value cannot be changed.

Options:

N/A

Default value:

v3

metadata

NodePoolMetadata object

Details:

Metadata of a node pool

Constraints:

None

spec

NodePoolSpec object

Details:

Node pool specifications

Constraints:

This field is optional for updating a node pool.

status

CreateNodePoolStatus object

Details:

Node pool status

Constraints:

None

Table 42 NodePoolMetadata

Parameter

Type

Description

name

String

Details:

Node pool name

Constraints:

You cannot create node pools named DefaultPool.

Options:

Enter 1 to 50 characters starting with a lowercase letter and not ending with a hyphen (-). Only lowercase letters, digits, and hyphens (-) are allowed.

Default value:

N/A

uid

String

Details:

UID of a node pool

Constraints:

The value is automatically generated after the object is created. A user-defined value will not take effect.

Options:

N/A

Default value:

N/A

annotations

Map<String,String>

Details:

Annotations of a node pool in key-value pairs

Constraints:

This parameter is used only for query and cannot be input through a request. Entered data of this parameter is invalid.

updateTimestamp

String

Details:

Time when a node pool was updated

Constraints:

The value is automatically recorded when a node pool is updated and cannot be specified.

Options:

N/A

Default value:

N/A

creationTimestamp

String

Details:

Time when a node pool was created

Constraints:

The value is automatically recorded when a node pool is created and cannot be specified.

Options:

N/A

Default value:

N/A

Table 43 NodePoolSpec

Parameter

Type

Description

type

String

Details:

Node pool type

Constraints:

None

Options:

  • vm: ECS

  • ElasticBMS: C6 general computing-plus BMS. An example flavor is c6.22xlarge.2.physical.

  • pm: BMS

Default value:

vm

nodeTemplate

NodeSpec object

Details:

Detailed parameters of a node pool template

Constraints:

None

initialNodeCount

Integer

Details:

The initial number of nodes in a node pool. The obtained value is the desired number of nodes in the node pool.

Constraints:

None

Options:

Values that are greater than or equal to 0 and less than or equal to the cluster scale

Default value:

0

autoscaling

NodePoolNodeAutoscaling object

Details:

Auto scaling parameters

Constraints:

None

nodeManagement

NodeManagement object

Details:

Node management configuration

Constraints:

None

podSecurityGroups

Array of SecurityID objects

Details:

Security group configuration

Constraints:

None

extensionScaleGroups

Array of ExtensionScaleGroup objects

Details:

Configuration list of the extended scaling groups in a node pool. For details, see the definition of ExtensionScaleGroup.

Constraints:

None

customSecurityGroups

Array of strings

Details:

Custom security group configuration for a node pool. New nodes added to a node pool can be bound to a specified security group.

  • Specifying no security group ID will add the new nodes to the default node security group.

  • Specifying a valid security group ID will put new nodes in that security group.

  • When specifying a security group, do not modify the port rules on which CCE depends. For details, see How Can I Configure a Security Group Rule in a Cluster?

Constraints:

None

Table 44 NodeSpec

Parameter

Type

Description

flavor

String

Details:

Node flavors. For details about the node flavors supported by CCE clusters, see Node Specifications.

Constraints:

None

Options:

N/A

Default value:

N/A

az

String

Details:

AZ where the node to be created is located. You need to specify the AZ name. Random AZs will not be allocated to a node created using APIs.

For details about AZs supported by CCE, see Regions and Endpoints.

Constraints:

When you are creating a node pool and configuring a scaling group, this parameter cannot be set to random.

Options:

N/A

Default value:

N/A

os

String

Details:

Node OS. For details about the supported OSs, see Node OSs.

Constraints:

  • If the selected OS is not supported by the current cluster version, it will be automatically replaced with a supported OS of the same series.

  • If alpha.cce/NodeImageID in extendParam is specified during node creation, you do not need to configure this parameter.

  • If this parameter is not specified, CCE automatically selects a supported OS version based on the cluster version.

  • This parameter is mandatory when creating a node pool.

  • If you are using shared disk space when creating a node, this parameter is mandatory. Specifically, the disk initialization configuration management parameter storage is used and the name field of virtualSpaces in StorageGroups is set to share.

Options:

N/A

Default value:

N/A

login

Login object

Details:

Node login mode. Either the key pair or password must be used for login.

Constraints:

This parameter cannot be modified when a node pool is being updated.

rootVolume

Volume object

Details:

Disk information of a node

Constraints:

None

dataVolumes

Array of Volume objects

Details:

Data disk parameters of a node. For DeC nodes, the parameter details are the same as those in rootVolume.

Constraints:

A VM can have up to 16 disks attached, while a BMS can only have up to 10 disks attached. The maximum number of disks that can be attached to either a VM or BMS is limited by their respective maximum disk limits. (You can add more data disks to each of your nodes through the CCE console or APIs.)

The data disk used by the container runtime and kubelet cannot be detached, or the node will become unavailable.

storage

Storage object

Details:

Disk initialization management parameter.

This parameter is complex to configure. For details, see Attaching Disks to a Node.

Constraints:

  • If a node has both local and EVS disks attached, make sure to not keep the default value for this parameter, or it may result in unexpected disk partitions.

  • If you want to change the value range of a data disk to 20 to 32768, do not use the default value.

  • If you want to use the shared disk space (with the runtime and Kubernetes partitions cancelled), do not retain the default value of this parameter. For details about the shared disk space, see Space Allocation of a Data Disk.

  • If you want to store system components in the system disk, do not use the default value.

publicIP

NodePublicIP object

Details:

EIP of a node

Constraints:

This parameter is not supported when you add a node during node pool creation.

nodeNicSpec

NodeNicSpec object

Details:

ENI of a node

Constraints:

None

count

Integer

Details:

Number of nodes to be created in batches

Constraints:

This parameter can be left blank when it is used for a node pool.

Options:

Positive integers that are greater than or equal to 1 and less than or equal to the maximum limit

Default value:

N/A

billingMode

Integer

Details:

Billing mode of a node

Constraints:

None

Options:

  • 0: pay-per-use

  • 1: yearly/monthly

  • 2: (Discarded) yearly/monthly billing with auto payment enabled

Default value:

N/A

taints

Array of Taint objects

Details:

Taints, which can be added to nodes for anti-affinity configuration. Each taint contains the following parameters:

  • Key: Enter 1 to 63 characters starting and ending with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed. A DNS subdomain can be prefixed to a key.

  • Value: Enter 1 to 63 characters starting and ending with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed.

  • Effect: Available options are NoSchedule, PreferNoSchedule, and NoExecute.

    When creating a node, you can specify the initial value for this parameter and this field is not returned during query. In node pools, the initial value can be specified in the node template and this field is returned during query. In other scenarios, this field is not returned during query.

Example:

"taints": [{
  "key": "status",
  "value": "unavailable",
  "effect": "NoSchedule"
}, {
  "key": "looks",
  "value": "bad",
  "effect": "NoSchedule"
}]

Constraints:

A maximum of 20 taints can be configured.

k8sTags

Map<String,String>

Details:

Defined in key-value pairs.

  • Key: Enter 1 to 63 characters starting and ending with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed. A DNS subdomain containing a maximum of 253 characters (such as example.com/my-key) can be prefixed to a key.

  • Value: The value can be left blank or contain 1 to 63 characters that start and end with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed.

    When creating a node, you can specify the initial value for this parameter and this field is not returned during query. In node pools, the initial value can be specified in the node template and this field is returned during query. In other scenarios, this field is not returned during query.

Example:

"k8sTags": {
  "key": "value"
}

Constraints:

A maximum of 20 key-value pairs are allowed.

ecsGroupId

String

Details:

ECS group ID. If this parameter is specified, nodes will be created in the specific ECS group.

Constraints:

This configuration does not take effect when a node pool is created. To ensure that all nodes in a node pool are in the same ECS group, configure nodeManagement in the node pool.

Options:

N/A

Default value:

N/A

dedicatedHostId

String

Details:

ID of the DeH to which nodes will be scheduled.

Constraints:

This parameter is not supported when you add a node during node pool creation.

userTags

Array of UserTag objects

Details:

Cloud server tag (resource tag). When creating a node, you can specify the initial value for this parameter and this field is not returned during query. In node pools, the initial value can be specified in the node template and this field is returned during query. In other scenarios, this field is not returned during query.

Constraints:

  • The key of a tag must be unique. The maximum number of custom tags supported by CCE varies depending on regions and cannot exceed 8.

  • A tag key can have a maximum of 36 characters. It can only contain letters, digits, Unicode characters, and special characters (-_).

runtime

Runtime object

Details:

Container runtime

  • Clusters earlier than v1.25: The default value is docker.

  • Clusters of v1.25 or later: The default value varies with the OSs.

  • For nodes running EulerOS 2.5 or EulerOS 2.8, the default container runtime is docker. For nodes running other OSs, the default container runtime is containerd.

Constraints:

None

initializedConditions

Array of strings

Details:

Custom initialization flag, which is left blank by default.

Before CCE nodes are initialized, they are tainted with node.cloudprovider.kubernetes.io/uninitialized to prevent pods from being scheduled to them. When creating a node, you can specify the initializedConditions parameter to control the taint removal time. By default, the timeout interval is not configured.

Example:

  1. Create a node and add parameter "initializedConditions": ["CCEInitial", "CustomedInitial"].

  2. After custom initialization is complete, CCE will call a Kubernetes API (for example, PATCH /v1/nodes/{node_ip}/status) to update the node conditions by adding two labels of types CCEInitial and CustomedInitial and setting the status to True, as shown in the following:

status:
  conditions:
  - type: CCEInitial
    status: 'True'
  - type: CustomedInitial
    status: 'True'
  1. CCE polls status.Conditions of nodes to check whether there are conditions of types CCEInitial and CustomedInitial. If such conditions exist and the status is True, the node initialization is complete and the initialization taint is removed.

  2. initializedConditions allows you to configure a timeout period during node creation. For example, "initializedConditions": ["CCEInitial:15m", "CustomedInitial:15m"] indicates that the timeout period is 15 minutes. After the timeout period is reached, the initialization conditions will be automatically ignored and the initialization taint will be removed when CCE polls the node.

Constraints:

  • The timeout interval in initializedConditions ranges from 1 to 99 seconds.

  • Each value has 1 to 20 characters, which must consist of letters and digits.

  • The maximum number of flags cannot exceed 2.

  • The unit of the timeout period is minute (m).

extendParam

NodeExtendParam object

Details:

Extended parameters for creating a node

Constraints:

None

hostnameConfig

HostnameConfig object

Details:

Kubernetes node name configuration parameter

Constraints:

The supported cluster version is v1.23.6-r0 to v1.25 or v1.25.2-r0 or later.

serverEnterpriseProjectID

String

Details:

Enterprise project ID of a server. CCE does not support features provided by EPS. This field is used only for synchronizing enterprise project IDs of servers.

Constraints:

To create a node or node pool, you can specify an existing enterprise project for it. If this field is left blank, it inherits the enterprise project attributes of the cluster that runs the node or node pool.

When updating a node pool, any configuration modifications you made will apply only to new nodes. You need to modify the enterprise projects of existing nodes on the EPS console.

Options:

N/A

Default value:

If no value is specified during update, this field will not be updated.

If this parameter is left blank, the cluster enterprise project is returned.

Table 45 Login

Parameter

Type

Description

sshKey

String

Details:

Name of the key pair used for login

Constraints:

None

Options:

N/A

Default value:

N/A

userPassword

UserPassword object

Details:

Password used for node login

Constraints:

None

Table 46 UserPassword

Parameter

Type

Description

username

String

Details:

Login account. The default value is root.

Constraints:

None

Options:

N/A

Default value:

root

password

String

Details:

Login password. If a username and password are used when a node is created, this field is shielded in the response body.

Constraints:

The password field must be salted during node creation. For details, see Adding a Salt in the password Field When Creating a Node.

Options:

A password must:

  • Contain 8 to 26 characters.

  • Contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters !@$%^-_=+[{}]:,./?

  • Not contain the username or the username spelled backwards.

Default value:

N/A

Table 47 Volume

Parameter

Type

Description

size

Integer

Details:

Disk size, in GiB

Constraints:

None

Options:

  • System disks: 40 to 1024

  • The first data disk: 20 to 32768 (When storage is not specified, this value range becomes 100 to 32768.)

  • Other data disks: 10 to 32768 (When storage is not specified, this value range becomes 100 to 32768.)

Default value:

N/A

volumetype

String

Details:

Disk type. For details about possible values, see the root_volume parameter in the API used to create an ECS.

Constraints:

None

Options:

  • SAS: high I/O SAS disks

  • SSD: ultra-high I/O SSD disks

  • SATA: common I/O SATA disks. SATA disks have been removed from EVS. You can find them attached only to existing nodes.

NOTE:

For details about disk types, see Disk Types and Performance.

Default value:

N/A

extendParam

Map<String,Object>

Details:

Extended disk parameters, defined in extendparam in the API used to create an ECS.

For details, see extendparam Field Description for Creating Disks.

Constraints:

None

cluster_id

String

Details:

ID of the storage pool used by the ECS system disk. This field is used only for DeC clusters and functions as dssPoolID, that is, the ID of the DSS storage pool.

To obtain the value, see the ID field in the API used to obtain details of a DSS storage pool.

Constraints:

None

Options:

N/A

Default value:

N/A

cluster_type

String

Details:

Storage class of the ECS system disk

Constraints:

None

Options:

This field is used only for DeC clusters, and the value is always dss.

Default value:

N/A

hw:passthrough

Boolean

Details:

  • Pay attention to this field if your ECS is SDI-compliant. If the value of this field is true, the created disk is of SCSI type.

  • If the node pool type is ElasticBMS, this field must be set to true.

  • If the node specification involves both local and EVS disks, configure the disk initialization parameters. For details, see Attaching Disks to a Node.

Constraints:

None

Options:

N/A

Default value:

N/A

metadata

VolumeMetadata object

Details:

EVS disk encryption information. This parameter is mandatory only when the system disk or data disk of the node to be created needs to be encrypted.

Constraints:

None

Table 48 VolumeMetadata

Parameter

Type

Description

__system__encrypted

String

Details:

Whether an EVS disk is encrypted. The value 0 indicates that the EVS disk is not encrypted, and the value 1 indicates that the EVS disk is encrypted.

Constraints:

None

Options:

N/A

Default value:

If this parameter does not appear, the disk is not encrypted.

__system__cmkid

String

Details:

CMK ID, which indicates encryption in metadata. This field is used with __system__encrypted.

Constraints:

None

Options:

N/A

Default value:

N/A

Table 49 Storage

Parameter

Type

Description

storageSelectors

Array of StorageSelectors objects

Details:

Disk selection. Matched disks are managed based on matchLabels and storageType settings. Disks are matched in sequence. The matching rule in the front is matched first.

Constraints:

None

storageGroups

Array of StorageGroups objects

Details:

A storage group consisting of multiple storage devices, which are used to divide storage space.

Constraints:

None

Table 50 StorageSelectors

Parameter

Type

Description

name

String

Details:

Name of a selector, which is used as the index of selectorNames in storageGroup.

Constraints:

The name of each selector must be unique.

Options:

N/A

Default value:

N/A

storageType

String

Details:

Storage type

Constraints:

  • The local storage type does not support disk selection. All local disks form a VG. Therefore, only one local storage selector is allowed.

  • The system storage type does not support disk selection. It is recommended that you use the system disk to store system components. As a result, only one storage selector of the system type is allowed, and the name must be cceUse.

Options:

Only evs (EVS disks), local (local disks), and system (system disks) are supported.

Default value:

N/A

matchLabels

matchLabels object

Details:

Matching field of an EVS disk

Constraints:

If storageType is set to system (system disk), you do not need to configure this parameter.

Options:

The size, volumeType, metadataEncrypted, metadataCmkid, and count fields in DataVolume are supported.

Default value:

N/A

Table 51 matchLabels

Parameter

Type

Description

size

String

Details:

Matched disk size, for example, 100. If this parameter is left blank, the disk size is not limited.

Constraints:

None

Options:

N/A

Default value:

N/A

volumeType

String

Details:

EVS disk type

Constraints:

None

Options:

SSD, GPSSD, SAS, ESSD, and SATA are supported. If this parameter is left blank, there is no restriction on the disk type.

Default value:

N/A

metadataEncrypted

String

Details:

Disk encryption identifier. If this parameter is set to 0, it specifies that the disk is not encrypted. If this parameter is set to 1, it specifies that the disk is encrypted. If this parameter is left blank, there is no restriction on the disk encryption identifier.

Constraints:

None

Options:

N/A

Default value:

N/A

metadataCmkid

String

Details:

CMK ID of an encrypted disk. The value is a string of 36 bytes. If this parameter is left blank, there is no restriction on the disk key ID.

Constraints:

None

Options:

N/A

Default value:

N/A

count

String

Details:

Number of disks to be selected. If this parameter is left blank, all disks of this type are selected.

Constraints:

None

Options:

N/A

Default value:

N/A

Table 52 StorageGroups

Parameter

Type

Description

name

String

Details:

Name of a virtual storage group, which must be unique

Constraints:

None

Options:

  • If cceManaged is set to true, the name field must be set to vgpaas.

  • If the data disk is used as a temporary storage volume, the name field must be set to vg-everest-localvolume-ephemeral.

  • If the data disk is used as a persistent storage volume, the name field must be set to vg-everest-localvolume-persistent.

Default value:

N/A

cceManaged

Boolean

Details:

Storage space to which Kubernetes and runtime belong. Only one group is set to true. If this parameter is left blank, the default value false is used.

Constraints:

None

Options:

N/A

Default value:

N/A

selectorNames

Array of strings

Details:

Corresponds to name in storageSelectors. One group can select multiple selectors, but one selector can be selected by only one group.

Constraints:

System components cannot be separately stored in the system disk and data disks. Therefore, when the selector type is set to system, only one selector can be selected for a group.

virtualSpaces

Array of VirtualSpace objects

Details:

Detailed management of space configurations in a group

Constraints:

None

Table 53 VirtualSpace

Parameter

Type

Description

name

String

Details:

Name of a virtualSpace. Only types of share, kubernetes, runtime, and user are supported.

Constraints:

None

Options:

  • Kubernetes: Kubernetes space configuration. lvmConfig needs to be configured.

  • runtime: runtime space configuration. runtimeConfig needs to be configured.

  • user: user space configuration. lvmConfig needs to be configured.

Default value:

N/A

size

String

Details:

Size of a virtualSpace. The value must be an integer in percentage, for example, 90%.

Constraints:

None

Options:

10 to 90. The sum of percentages of all virtualSpaces in a group cannot exceed 100%.

Default value:

N/A

lvmConfig

LVMConfig object

Details:

LVM configuration management, which is applicable to share, Kubernetes, and user space configuration

Constraints:

One virtualSpace supports only one config.

runtimeConfig

RuntimeConfig object

Details:

Runtime configuration management, which is applicable to runtime space configuration

Constraints:

One virtualSpace supports only one config.

Table 54 LVMConfig

Parameter

Type

Description

lvType

String

Details:

LVM write mode. linear indicates the linear mode. striped indicates the striped mode, in which multiple disks are used to form a strip to improve disk performance.

Constraints:

None

Options:

N/A

Default value:

N/A

path

String

Details:

Disk mount path. This parameter only takes effect in user configuration. The value can be an absolute path containing digits, uppercase letters, lowercase letters, periods (.), hyphens (-), and underscores (_).

Constraints:

Do not leave the path empty or set it to a key OS path such as the root directory. Key OS paths that cannot be entered:

/, /home, /home/, /bin, /bin/, /lib, /lib/, /root, /root/, /boot, /boot/, /dev, /dev/, /etc, /etc/, /lost+found, /lost+found/, /mnt, /mnt/, /proc, /proc/,/sbin, /sbin/, /srv, /srv/, /tmp, /tmp/, /var, /var/, /media, /media/, /opt, /opt/, /selinux, /selinux/, /sys, /sys/, /usr, /usr/, /opt/cloud/, /mnt/paas/, /home/paas/, /var/paas/, /var/lib/, /var/script/

Options:

N/A

Default value:

N/A

Table 55 RuntimeConfig

Parameter

Type

Description

lvType

String

Details:

LVM write mode. linear indicates the linear mode. striped indicates the striped mode, in which multiple disks are used to form a strip to improve disk performance.

Constraints:

None

Options:

N/A

Default value:

N/A

Table 56 NodePublicIP

Parameter

Type

Description

ids

Array of strings

Details:

IDs of existing EIPs

Constraints:

  • The quantity cannot be greater than the number of nodes to be created.

  • If ids has been specified, you do not need to configure count and eip.

count

Integer

Details:

Number of EIPs to be dynamically created

Constraints:

count and eip must be configured simultaneously.

Options:

N/A

Default value:

N/A

eip

NodeEIPSpec object

Details:

EIP configuration

Constraints:

This parameter is not supported when creating a node pool.

Table 57 NodeEIPSpec

Parameter

Type

Description

iptype

String

Details:

EIP type, specified in publicip.type in the API for assigning an EIP.

For details, see Assigning an EIP.

Constraints:

None

Options:

N/A

Default value:

N/A

bandwidth

NodeBandwidth object

Details:

Bandwidth parameters of the EIP

Constraints:

None

Table 58 NodeBandwidth

Parameter

Type

Description

chargemode

String

Details:

Bandwidth billing mode

NOTE:
  • Billed by bandwidth: The billing will be based on the data transmission rate (in Mbps) of public networks. This billing mode is recommended if your bandwidth usage is higher than 10%.

  • Billed by traffic: The billing is based on the total amount of data (in GB) transmitted over the public network. This mode is available only when you are creating a pay-per-use node. This billing mode is recommended if your bandwidth usage is lower than 10%.

Constraints:

None

Options:

  • If this field is not specified, the billing is based on bandwidth.

  • If the field value is empty, the billing is based on bandwidth.

  • If the field value is traffic, the billing is based on traffic.

  • If the value is out of the preceding options, the cloud server will fail to be created.

Default value:

N/A

size

Integer

Details:

Bandwidth size, specified in bandwidth.size in the API for assigning an EIP.

For details, see Assigning an EIP.

Constraints:

None

Options:

N/A

Default value:

N/A

sharetype

String

Details:

Bandwidth sharing type. Dedicated bandwidth is supported only. PER specifies dedicated bandwidth.

Constraints:

None

Options:

N/A

Default value:

N/A

Table 59 NodeNicSpec

Parameter

Type

Description

primaryNic

NicSpec object

Details:

Description of the primary ENI

Constraints:

None

extNics

Array of NicSpec objects

Details:

Extension ENI

Constraints:

This parameter is not supported when you add a node during node pool creation.

Table 60 NicSpec

Parameter

Type

Description

subnetId

String

Details:

Network ID of the subnet to which an ENI belongs. If subnetList is also configured for a node pool, the subnetList field is used for adding subnets to the node pool.

Constraints:

  • If subnetId is not specified when a primary ENI is creating, the cluster subnet will be used.

  • When creating an extension ENI, you must specify subnetId.

Options:

N/A

Default value:

N/A

fixedIps

Array of strings

Details:

The IP address of the primary ENI is specified using fixedIps. The number of IP addresses cannot be greater than the number of created nodes.

Constraints:

Either fixedIps or ipBlock can be specified. fiexdIps cannot be specified for extension ENIs.

ipBlock

String

Details:

CIDR format of the primary ENI IP address range. The IP address of the created node falls in this range.

Constraints:

Either fixedIps or ipBlock can be specified.

Options:

N/A

Default value:

N/A

subnetList

Array of strings

Details:

Network ID list of the subnet where the ENI resides. Multiple subnets can be configured for a node pool.

Constraints:

A maximum of 20 subnets can be configured.

Table 61 Taint

Parameter

Type

Description

key

String

Details:

Key

Constraints:

The value must contain 1 to 63 characters starting and ending with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed.

Options:

N/A

Default value:

N/A

value

String

Details:

Value

Constraints:

The value must contain 1 to 63 characters starting and ending with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed.

Options:

N/A

Default value:

N/A

effect

String

Details:

Effect

Constraints:

None

Options:

Available options are NoSchedule, PreferNoSchedule, and NoExecute.

Default value:

N/A

Table 62 UserTag

Parameter

Type

Description

key

String

Details:

Key of the cloud server tag

Constraints:

The value cannot start with CCE- or __type_baremetal.

Options:

A tag key can have a maximum of 36 characters. It can only contain letters, digits, Unicode characters, and special characters (-_).

Default value:

N/A

value

String

Details:

Value of the cloud server tag

Constraints:

None

Options:

A tag value can have a maximum of 43 characters. It can only contain letters, digits, Unicode characters, and special characters (-_).

Default value:

N/A

Table 63 Runtime

Parameter

Type

Description

name

String

Details:

Container runtime

Constraints:

None

Options:

N/A

Default value:

  • Clusters earlier than v1.25: The default value is docker.

  • Clusters of v1.25 or later: The default value varies with the OSs.

  • For nodes running EulerOS 2.5 or EulerOS 2.8, the default value is docker. For nodes running other OSs, the default value is containerd.

Table 64 NodeExtendParam

Parameter

Type

Description

ecs:performancetype

String

Details:

ECS flavor types. This field is returned in the response.

Constraints:

None

Options:

N/A

Default value:

N/A

orderID

String

Details:

Order ID

Constraints:

This parameter is returned in the response when the node is billed on a yearly/monthly basis with auto payment enabled (only in creation scenarios).

Options:

N/A

Default value:

N/A

productID

String

Details:

Product ID

Constraints:

This field is returned in the response when the node is billed on a yearly/monthly basis with auto payment enabled.

Options:

N/A

Default value:

N/A

maxPods

Integer

Details:

Maximum number of pods that can be created on a node, including the default system pods.

This limit prevents the node from being overloaded with pods.

The number of pods that can be created on a node is determined by multiple parameters. For details, see Maximum Number of Pods That Can Be Created on a Node.

Constraints:

None

Options:

16 to 256

Default value:

N/A

periodType

String

Details:

Subscription period type

Constraints:

  • As a request parameter, it is valid and mandatory only when billingMode is set to 1 (yearly/monthly billing) or 2 (yearly/monthly billing with auto payment enabled) (This option has been discarded).

  • As a response parameter, it is returned only when a yearly/monthly node is created.

Options:

  • month

  • year

Default value:

N/A

periodNum

Integer

Details:

Number of subscription periods

Constraints:

  • As a request parameter, it is valid and mandatory only when billingMode is set to 1 (yearly/monthly billing) or 2 (yearly/monthly billing with auto payment enabled) (This option has been discarded).

  • As a response parameter, it is returned only when a yearly/monthly node is created.

Options:

  • If periodType is month, the value ranges from 1 to 9.

  • If periodType is year, the value ranges from 1 to 3.

Default value:

N/A

isAutoRenew

String

Details:

Whether auto-renewal is enabled

Constraints:

This field is valid when billingMode is set to 1 or 2 (discarded). If not specified, auto-renewal is not enabled.

Options:

  • true: Auto-renewal is enabled.

  • false: Auto-renewal is not enabled.

Default value:

N/A

isAutoPay

String

Details:

Whether an order is automatically or manually paid

Constraints:

This field is valid when billingMode is set to 1 or 2 (discarded). If not specified when billingMode is set to 1, auto payment is not enabled. (Discarded) If not specified when billingMode is set to 2, auto payment is enabled.

Options:

  • true: Auto payment is enabled.

  • false: Auto payment is not enabled.

Default value:

N/A

DockerLVMConfigOverride

String

Details:

Docker data disk configuration item. (This parameter has been discarded. Use the storage field instead.) Example of the default configuration:

"DockerLVMConfigOverride":"dockerThinpool=vgpaas/90%VG;kubernetesLV=vgpaas/10%VG;diskType=evs;lvType=linear"

By default, if no VD disk is available, an error occurs because the data disk fails to be found. Specify diskType based on the actual drive letter type.

Constraints:

None

Options:

The following fields are included:

  • userLV: (Optional) size of the user space, for example, vgpaas/20%VG

  • userPath (Optional): mount path of the user space, for example, /home/wqt-test

  • diskType: disk type. Only evs, hdd, and ssd are supported.

  • lvType: type of a logic volume. The value can be linear or striped.

  • dockerThinpool: Docker space size, for example, vgpaas/60%VG

  • kubernetesLV: kubelet space size, for example, vgpaas/20%VG

    Default value:

    N/A

dockerBaseSize

Integer

Details:

Available disk space of a single container on a node (unit: G). This parameter has been discarded. Use containerBaseSize.

For details about how to allocate the space for the container runtime, see Space Allocation of a Data Disk.

Constraints:

When Device Mapper is used, it is recommended that dockerBaseSize be set to a value less than or equal to 80 GiB. If the value is too large, the container runtime may fail to be started due to long initialization. If there are special requirements for the container disk space, you can mount an external or local storage device.

  • The dockerBaseSize setting takes effect only on nodes running EulerOS or Huawei Cloud EulerOS 2.0 in clusters of the new version.

Options:

10 to 500

Default value:

If the value is not specified or is set to 0, the default value is used.

  • The default value is 10 in Device Mapper mode.

  • In OverlayFS mode, the available space of a single container is not limited by default.

containerBaseSize

Integer

Details:

Available disk space of a single container on a node (unit: G).

For details about how to allocate the space for the container runtime, see Space Allocation of a Data Disk.

Constraints:

When Device Mapper is used, it is recommended that containerBaseSize be set to a value less than or equal to 80 GiB. If the value is too large, the container runtime may fail to be started due to long initialization. If there are special requirements for the container disk space, you can mount an external or local storage device. In new versions, the Device Mapper mode is used only by BMSs in the same resource pool and is being discarded.

  • The containerBaseSize setting takes effect only on nodes running EulerOS or Huawei Cloud EulerOS 2.0 in clusters of the new version (v1.23.14-r0, v1.25.9-r0, v1.27.6-r0, v1.28.4-r0 or later).

  • This parameter cannot be updated when a node pool is being updated.

Options:

10 to 500

Default value:

If the value is not specified or is set to 0, the default value is used.

  • The default value is 10 in Device Mapper mode.

  • In OverlayFS mode, the available space of a single container is not limited by default.

publicKey

String

Details:

Public key of a node

Constraints:

None

Options:

N/A

Default value:

N/A

alpha.cce/preInstall

String

Details:

Pre-installation script.

The input value must be encoded using Base64. The method is as follows:

echo -n "*Content to be encoded*" | base64

Constraints:

The characters of both the pre-installation and post-installation scripts are centrally calculated, and the total number of characters after transcoding cannot exceed 10,240.

Options:

N/A

Default value:

N/A

alpha.cce/postInstall

String

Details:

Post-installation script.

The input value must be encoded using Base64. The method is as follows:

echo -n "*Content to be encoded*" | base64

Constraints:

The characters of both the pre-installation and post-installation scripts are centrally calculated, and the total number of characters after transcoding cannot exceed 10,240.

Options:

N/A

Default value:

N/A

alpha.cce/NodeImageID

String

Details:

This parameter is required when a custom image is used to create a BMS node.

Constraints:

None

Options:

N/A

Default value:

N/A

nicMultiqueue

String

Details:

  • Number of ENI queues. Example:

"[{\"queue\":4}]"

The following fields are included:

  • queue: number of ENI queues

  • Supported proportions are {"1":128, "2":92, "4":92, "8":32, "16":16, "28":9}. That is, if there is one queue, a maximum of 128 ENIs can be bound. If there are two queues, a maximum of 92 ENIs can be bound.

  • A larger number of ENI queues indicates higher performance but fewer ENIs can be bound. The queue settings cannot be changed after creation.

Constraints:

This field can be configured only for BMS nodes in CCE Turbo clusters.

Options:

N/A

Default value:

N/A

nicThreshold

String

Details:

  • ENI pre-binding thresholds. Example:

"0.3:0.6"
  • Low threshold (L): determines the minimum number of pre-bound ENIs (Min). Formula: Min = Total number of ENIs of the node × L

  • High threshold (H): determines the maximum number of pre-bound ENIs (Max). Formula: Max = Total number of ENIs of the node × H

  • Number of ENIs bound to a BMS node (B) and number of ENIs being used by pods (U): U + Min < B < U + Max

  • If the number of pre-bound ENIs on a BMS node is smaller than the minimum allowed, the system will bind more ENIs to make the numbers equal.

  • If the number of pre-bound ENIs on a BMS node is larger than the maximum allowed, the system periodically unbinds ENIs (about every 2 minutes) to make the numbers equal.

    Constraints:

  • This field can be configured only for BMS nodes in CCE Turbo clusters.

  • Pre-binding ENIs can speed up workload creation but occupies IP addresses.

Options:

Both the thresholds are one-decimal-place values ranging from 0.0 to 1.0. The low threshold must be smaller than or equal to the high one.

Default value:

N/A

chargingMode

Integer

Details:

Billing mode of a node. This parameter has been discarded. Use billingMode in NodeSpec instead.

Constraints:

None

Options:

N/A

Default value:

N/A

marketType

String

Details:

When creating a spot ECS, this parameter should be set to spot.

Constraints:

This parameter is valid only when billingMode is set to 0.

Options:

N/A

Default value:

N/A

spotPrice

String

Details:

The highest price per hour a user accepts for a spot ECS

Constraints:

  • This parameter takes effect only when billingMode is set to 0 and marketType is set to spot.

  • When billingMode is set to 0 and marketType is set to spot, if spotPrice is not specified, the pay-per-use price is used by default.

  • The spotPrice value must be less than or equal to the pay-per-use price and greater than or equal to the ECS market price.

Options:

N/A

Default value:

N/A

agency_name

String

Details:

Agency name.

An agency is created by a tenant administrator on Identity and Access Management (IAM) to provide temporary credentials for CCE nodes to access cloud servers.

This parameter is returned only when it is transferred during node creation.

Constraints:

None

Options:

N/A

Default value:

N/A

kubeReservedMem

Integer

Details:

Reserved node memory, which is reserved for Kubernetes components.

Constraints:

None

Options:

N/A

Default value:

N/A

systemReservedMem

Integer

Details:

Reserved node memory, which is reserved for system components.

Constraints:

None

Options:

N/A

Default value:

N/A

init-node-password

String

Details:

Node password. If this parameter is used as a response parameter, asterisks (*) will be displayed.

Constraints:

None

Options:

N/A

Default value:

N/A

Table 65 HostnameConfig

Parameter

Type

Description

type

String

Details:

Configuration type of the Kubernetes node name. The default value is privateIp.

Constraints:

  • The node names, Kubernetes node names, and VM names of the nodes configured with cceNodeName are the same. Node names cannot be changed. Once a VM name is altered on the ECS console, the node name cannot be modified accordingly during ECS synchronization.

  • To prevent conflicts between Kubernetes node names, a suffix is automatically added to the node name of a node configured with cceNodeName. The suffix consists of a hyphen (-) followed by five random lowercase letters and digits (0 to 9).

Options:

  • privateIp: Use the private node IP address the as the Kubernetes node name.

  • cceNodeName: Use the CCE node name as the Kubernetes node name.

Default value:

privateIp

Table 66 NodePoolNodeAutoscaling

Parameter

Type

Description

enable

Boolean

Details:

Whether to enable auto scaling

Constraints:

None

Options:

  • false: Auto scaling is disabled.

  • true: Auto scaling is enabled.

Default value:

false

minNodeCount

Integer

Details:

Minimum number of nodes that can be scaled in if auto scaling is enabled

Constraints:

None

Options:

Values that are greater than or equal to 0 and cannot be greater than the maximum number of nodes allowed by the cluster specifications

Default value:

0

maxNodeCount

Integer

Details:

Maximum number of nodes that can be added if auto scaling is enabled

Constraints:

None

Options:

Values that are greater than or equal to the value of minNodeCount and cannot be greater than the maximum number of nodes allowed by the cluster specifications

Default value:

0

scaleDownCooldownTime

Integer

Details:

How long nodes will be kept, in minutes. During this period, nodes added will not be deleted.

Constraints:

None

Options:

0 to 2147483646

Default value:

0

priority

Integer

Details:

Weight of a node pool. A node pool with a higher weight has a higher priority during scale-out.

Constraints:

None

Options:

N/A

Default value:

0

Table 67 NodeManagement

Parameter

Type

Description

serverGroupReference

String

Details:

Cloud server group ID. If this field is specified, all nodes in the node pool will be created in this group. The server group ID can be specified only when you are creating the node pool and cannot be changed.

Constraints:

If a cloud server group is specified, the number of nodes in the node pool cannot exceed the group quota.

Options:

N/A

Default value:

N/A

Table 68 SecurityID

Parameter

Type

Description

id

String

Details:

Security group ID

Constraints:

None

Options:

N/A

Default value:

N/A

Table 69 ExtensionScaleGroup

Parameter

Type

Description

metadata

ExtensionScaleGroupMetadata object

Details:

Basic information about an extended scaling group

Constraints:

None

spec

ExtensionScaleGroupSpec object

Details:

Configurations of an extended scaling group, which carry different configurations from those of the default scaling group

Constraints:

None

Table 70 ExtensionScaleGroupMetadata

Parameter

Type

Description

uid

String

Details:

UUID of an extended scaling group, which is automatically generated by the system

Constraints:

None

Options:

N/A

Default value:

N/A

name

String

Details:

Name of an extended scaling group

Constraints:

The value cannot be default.

Options:

The value can contain a maximum of 55 characters. Only digits, lowercase letters, and hyphens (-) are allowed.

Default value:

N/A

Table 71 ExtensionScaleGroupSpec

Parameter

Type

Description

flavor

String

Details:

Node flavors. For details about the node flavors supported by CCE clusters, see Node Specifications.

Constraints:

None

Options:

N/A

Default value:

N/A

az

String

Details:

Node AZ

Constraints:

None

Options:

N/A

Default value:

If this parameter is not specified or left blank, the default scaling group configurations take effect.

capacityReservationSpecification

CapacityReservationSpecification object

Details:

Capacity reservation configurations of an extended scaling group

Constraints:

None

autoscaling

ScaleGroupAutoscaling object

Details:

Auto scaling configurations of an extended scaling group

Constraints:

None

Table 72 CapacityReservationSpecification

Parameter

Type

Description

id

String

Details:

Private pool ID

Constraints:

This value can be ignored when preference is set to none.

Options:

N/A

Default value:

N/A

preference

String

Details:

Private pool capacity

Constraints:

If the value is none, the capacity reservation is not specified. If the value is targeted, the capacity reservation is specified. In this case, the ID cannot be left blank.

Options:

N/A

Default value:

none

Table 73 ScaleGroupAutoscaling

Parameter

Type

Description

enable

Boolean

Details:

Whether to enable auto scaling for a scaling group

Constraints:

None

Options:

  • false: Auto scaling is disabled.

  • true: Auto scaling is enabled.

Default value:

false

extensionPriority

Integer

Details:

Scaling group priority. A larger value indicates a higher priority.

Constraints:

None

Options:

N/A

Default value:

0

minNodeCount

Integer

Details:

Minimum number of nodes that can be kept in a scaling group during auto scaling

Constraints:

None

Options:

Values that are greater than or equal to 0 and cannot be greater than the maximum number of nodes allowed by the cluster specifications

Default value:

0

maxNodeCount

Integer

Details:

Maximum number of nodes that can be kept in a scaling group during auto scaling

Constraints:

None

Options:

Values that are greater than or equal to the value of minNodeCount, less than or equal to the maximum number of nodes allowed by the cluster specifications, and less than or equal to the maximum number of nodes in the node pool

Default value:

0

Table 74 CreateNodePoolStatus

Parameter

Type

Description

currentNode

Integer

Details:

Total number of nodes in the current node pool (excluding the nodes that are being deleted)

Constraints:

None

Options:

N/A

Default value:

N/A

creatingNode

Integer

Details:

Number of nodes that are being created in the current node pool

Constraints:

None

Options:

N/A

Default value:

N/A

deletingNode

Integer

Details:

Number of nodes that are being deleted in the current node pool

Constraints:

None

Options:

N/A

Default value:

N/A

configurationSyncedNodeCount

Integer

Number of nodes that have synchronized with the node pool parameter configurations in the current node pool

phase

String

Details:

Node pool status

Constraints:

None

Options:

  • Null: The node pool is available. (The number of nodes in the current node pool has reached the expected value, and no node scaling is being performed.)

  • Synchronizing: The node pool is being scaled. (The number of nodes in the current node pool has not reached the expected value, and no node scaling is being performed.)

  • Synchronized: The node pool scaling is pending. (The number of nodes in the current node pool has not reached the expected value, or node scaling is being performed.)

  • SoldOut: The node pool cannot be scaled out. (This field is used in multiple scenarios, for example, resources in the node pool have been sold out or the resource quota is insufficient.)

NOTE:

The preceding node pool status has been discarded. It is reserved only for compatibility. Do not use it anymore. Use the following instead:

  • Node pool scaling status: You can obtain the status of the current node pool using parameters such as currentNode, creatingNode, or deletingNode.

  • Node pool scale-out: You can use conditions to obtain the detailed status of a node pool. Scalable can replace SoldOut.

  • Deleting: The node pool is being deleted.

  • Error: An error occurred.

Default value:

N/A

conditions

Array of NodePoolCondition objects

Details:

Node pool status details. For details, see the definition of Condition.

Constraints:

None

scaleGroupStatuses

Array of ScaleGroupStatus objects

Details:

Detailed status of a scaling group. For details, see the definition of ScaleGroupStatus.

Constraints:

None

Table 75 ScaleGroupStatus

Parameter

Type

Description

name

String

Details:

Scaling group name

Constraints:

None

Options:

N/A

Default value:

N/A

uid

String

Details:

Scaling group UUID

Constraints:

None

Options:

N/A

Default value:

N/A

creationTimestamp

String

Details:

The time when a scaling group was created

Constraints:

None

Options:

N/A

Default value:

N/A

updateTimestamp

String

Details:

The time when a scaling group was updated

Constraints:

None

Options:

N/A

Default value:

N/A

phase

String

Details:

Scaling group status

Constraints:

None

Options:

  • Null: The scaling group is available. (The number of nodes in the current scaling group has reached the expected value, and no node scaling is being performed.)

  • Synchronizing: The scaling group is being scaled. (The number of nodes in the current scaling group has not reached the expected value, and no node scaling is being performed.)

  • Synchronized: The scaling is pending. (The number of nodes in the current scaling group has not reached the expected value, or node scaling is being performed.)

  • SoldOut: The scaling group cannot be scaled out. (This field is used in multiple scenarios, for example, resources in the node pool have been sold out or the resource quota is insufficient.)

NOTE:

The preceding scaling group status has been discarded. It is reserved only for compatibility. Do not use it anymore. Use the following instead:

  • Scaling status of a scaling group: You can obtain the status of the current scaling group using parameters such as desiredNodeCount, existingNodeCount, or upcomingNodeCount.

  • Scaling group scale-out: You can use conditions to obtain the detailed status of a scaling group. Scalable can replace SoldOut.

  • Deleting: The scaling group is being deleted.

  • Error: An error occurred.

Default value:

N/A

desiredNodeCount

Integer

Details:

Expected number of nodes in a scaling group

Constraints:

None

Options:

N/A

Default value:

N/A

unpaidScaleNodeCount

Integer

Details:

Number of nodes in an unpaid order

Constraints:

None

Options:

N/A

Default value:

N/A

existingNodeCount

existingNodeCount object

Details:

Statistics on existing nodes in a scaling group

Constraints:

None

upcomingNodeCount

upcomingNodeCount object

Details:

Statistics on the nodes to be added in a scaling group

Constraints:

None

scaleDownDisabledNodeCount

Integer

Details:

Number of nodes that cannot be deleted in a scaling group

Constraints:

None

Options:

N/A

Default value:

N/A

conditions

Array of NodePoolCondition objects

Details:

Scaling group status details. For details, see the definition of Condition.

Constraints:

None

Table 76 existingNodeCount

Parameter

Type

Description

postPaid

Integer

Details:

Number of pay-per-use nodes

Constraints:

None

Options:

N/A

Default value:

N/A

prePaid

Integer

Details:

Number of yearly/monthly nodes

Constraints:

None

Options:

N/A

Default value:

N/A

total

Integer

Details:

Total number of pay-per-use and yearly/monthly nodes

Constraints:

None

Options:

N/A

Default value:

N/A

Table 77 upcomingNodeCount

Parameter

Type

Description

postPaid

Integer

Details:

Number of pay-per-use nodes

Constraints:

None

Options:

N/A

Default value:

N/A

prePaid

Integer

Details:

Number of yearly/monthly nodes

Constraints:

None

Options:

N/A

Default value:

N/A

total

Integer

Details:

Total number of pay-per-use and yearly/monthly nodes

Constraints:

None

Options:

N/A

Default value:

N/A

Table 78 NodePoolCondition

Parameter

Type

Description

type

String

Details:

Condition type

Constraints:

None

Options:

  • Scalable: whether a node pool can be scaled out. If the status is False, node pool scale-out will not be triggered again.

  • QuotaInsufficient: Quotas on which node pool scale-out depends are insufficient, affecting the node pool scale-out status.

  • ResourceInsufficient: Resources on which node pool scale-out depends are insufficient, affecting the node pool scale-out status.

  • UnexpectedError: The node pool fails to be scaled out due to unexpected reasons, affecting the node pool scale-out status.

  • LockedByOrder: The yearly/monthly-billed node pool is locked due to an order. The value of Reason is the ID of the pending order.

  • Error: A node pool error occurred. A common trigger is deletion failure.

Default value:

N/A

status

String

Details:

Current status of the condition

Constraints:

None

Options:

  • True

  • False

Default value:

N/A

lastProbeTime

String

Details:

Time when the status was last checked

Constraints:

None

Options:

N/A

Default value:

N/A

lastTransitTime

String

Details:

Time when the status was last changed

Constraints:

None

Options:

N/A

Default value:

N/A

reason

String

Details:

Reason why the status was last changed

Constraints:

None

Options:

N/A

Default value:

N/A

message

String

Details:

Detailed description of the condition

Constraints:

None

Options:

N/A

Default value:

N/A

Example Requests

Create a node pool billed on a pay-per-use basis with the following configurations: The number of nodes is 0. The node pool flavor is 2 vCPUs and 4 GiB of memory. The node OS is EulerOS 2.5. Docker containers are deployed. The sizes of the system disk and data disk of the node are 40 GB and 100 GB, respectively. Both the disks are of the high I/O type.

{
  "kind" : "NodePool",
  "apiVersion" : "v3",
  "metadata" : {
    "name" : "lc-it-nodepool-79796"
  },
  "spec" : {
    "initialNodeCount" : 0,
    "type" : "vm",
    "autoscaling" : {
      "enable" : false,
      "minNodeCount" : 0,
      "maxNodeCount" : 1,
      "scaleDownCooldownTime" : 0,
      "priority" : 0
    },
    "nodeManagement" : {
      "serverGroupReference" : ""
    },
    "nodeTemplate" : {
      "flavor" : "s6.large.2",
      "az" : "******",
      "os" : "EulerOS 2.5",
      "login" : {
        "sshKey" : "KeyPair-001"
      },
      "rootVolume" : {
        "volumetype" : "SAS",
        "size" : 40
      },
      "dataVolumes" : [ {
        "volumetype" : "SAS",
        "size" : 100,
        "extendParam" : {
          "useType" : "docker"
        }
      } ],
      "billingMode" : 0,
      "extendParam" : {
        "alpha.cce/preInstall" : "",
        "alpha.cce/postInstall" : "",
        "alpha.cce/NodeImageID" : "",
        "maxPods" : 110
      },
      "nodeNicSpec" : {
        "primaryNic" : {
          "subnetId" : "7e767d10-7548-4df5-ad72-aeac1d08bd8a"
        }
      }
    },
    "podSecurityGroups" : [ {
      "id" : ""
    } ]
  }
}

Example Responses

Status code: 201

The job for creating a node pool in a specified cluster is successfully delivered.

{
  "kind" : "NodePool",
  "apiVersion" : "v3",
  "metadata" : {
    "name" : "lc-it-nodepool-79796",
    "uid" : "99addaa2-69eb-11ea-a592-0255ac1001bb"
  },
  "spec" : {
    "type" : "vm",
    "nodeTemplate" : {
      "flavor" : "s6.large.2",
      "az" : "******",
      "os" : "EulerOS 2.5",
      "login" : {
        "sshKey" : "KeyPair-001"
      },
      "rootVolume" : {
        "volumetype" : "SAS",
        "size" : 40
      },
      "dataVolumes" : [ {
        "volumetype" : "SAS",
        "size" : 100,
        "extendParam" : {
          "useType" : "docker"
        }
      } ],
      "publicIP" : {
        "eip" : {
          "bandwidth" : { }
        }
      },
      "nodeNicSpec" : {
        "primaryNic" : {
          "subnetId" : "7e767d10-7548-4df5-ad72-aeac1d08bd8a"
        }
      },
      "billingMode" : 0,
      "extendParam" : {
        "alpha.cce/NodeImageID" : "",
        "alpha.cce/postInstall" : "",
        "alpha.cce/preInstall" : "",
        "maxPods" : 110
      },
      "k8sTags" : {
        "cce.cloud.com/cce-nodepool" : "lc-it-nodepool-79796"
      }
    },
    "autoscaling" : {
      "maxNodeCount" : 1
    },
    "nodeManagement" : { }
  },
  "status" : {
    "phase" : ""
  }
}

SDK Sample Code

The SDK sample code is as follows.

Create a node pool billed on a pay-per-use basis with the following configurations: The number of nodes is 0. The node pool flavor is 2 vCPUs and 4 GiB of memory. The node OS is EulerOS 2.5. Docker containers are deployed. The sizes of the system disk and data disk of the node are 40 GB and 100 GB, respectively. Both the disks are of the high I/O type.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.cce.v3.region.CceRegion;
import com.huaweicloud.sdk.cce.v3.*;
import com.huaweicloud.sdk.cce.v3.model.*;

import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;

public class CreateNodePoolSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        String projectId = "{project_id}";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        CceClient client = CceClient.newBuilder()
                .withCredential(auth)
                .withRegion(CceRegion.valueOf("<YOUR REGION>"))
                .build();
        CreateNodePoolRequest request = new CreateNodePoolRequest();
        request.withClusterId("{cluster_id}");
        NodePool body = new NodePool();
        List<SecurityID> listSpecPodSecurityGroups = new ArrayList<>();
        listSpecPodSecurityGroups.add(
            new SecurityID()
                .withId("")
        );
        NodeManagement nodeManagementSpec = new NodeManagement();
        nodeManagementSpec.withServerGroupReference("");
        NodePoolNodeAutoscaling autoscalingSpec = new NodePoolNodeAutoscaling();
        autoscalingSpec.withEnable(false)
            .withMinNodeCount(0)
            .withMaxNodeCount(1)
            .withScaleDownCooldownTime(0)
            .withPriority(0);
        NodeExtendParam extendParamNodeTemplate = new NodeExtendParam();
        extendParamNodeTemplate.withMaxPods(110)
            .withAlphaCcePreInstall("")
            .withAlphaCcePostInstall("")
            .withAlphaCceNodeImageID("");
        NicSpec primaryNicNodeNicSpec = new NicSpec();
        primaryNicNodeNicSpec.withSubnetId("7e767d10-7548-4df5-ad72-aeac1d08bd8a");
        NodeNicSpec nodeNicSpecNodeTemplate = new NodeNicSpec();
        nodeNicSpecNodeTemplate.withPrimaryNic(primaryNicNodeNicSpec);
        Map<String, Object> listDataVolumesExtendParam = new HashMap<>();
        listDataVolumesExtendParam.put("useType", "docker");
        List<Volume> listNodeTemplateDataVolumes = new ArrayList<>();
        listNodeTemplateDataVolumes.add(
            new Volume()
                .withSize(100)
                .withVolumetype("SAS")
                .withExtendParam(listDataVolumesExtendParam)
        );
        Volume rootVolumeNodeTemplate = new Volume();
        rootVolumeNodeTemplate.withSize(40)
            .withVolumetype("SAS");
        Login loginNodeTemplate = new Login();
        loginNodeTemplate.withSshKey("KeyPair-001");
        NodeSpec nodeTemplateSpec = new NodeSpec();
        nodeTemplateSpec.withFlavor("s6.large.2")
            .withAz("******")
            .withOs("EulerOS 2.5")
            .withLogin(loginNodeTemplate)
            .withRootVolume(rootVolumeNodeTemplate)
            .withDataVolumes(listNodeTemplateDataVolumes)
            .withNodeNicSpec(nodeNicSpecNodeTemplate)
            .withBillingMode(0)
            .withExtendParam(extendParamNodeTemplate);
        NodePoolSpec specbody = new NodePoolSpec();
        specbody.withType(NodePoolSpec.TypeEnum.fromValue("vm"))
            .withNodeTemplate(nodeTemplateSpec)
            .withInitialNodeCount(0)
            .withAutoscaling(autoscalingSpec)
            .withNodeManagement(nodeManagementSpec)
            .withPodSecurityGroups(listSpecPodSecurityGroups);
        NodePoolMetadata metadatabody = new NodePoolMetadata();
        metadatabody.withName("lc-it-nodepool-79796");
        body.withSpec(specbody);
        body.withMetadata(metadatabody);
        body.withApiVersion("v3");
        body.withKind("NodePool");
        request.withBody(body);
        try {
            CreateNodePoolResponse response = client.createNodePool(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

Create a node pool billed on a pay-per-use basis with the following configurations: The number of nodes is 0. The node pool flavor is 2 vCPUs and 4 GiB of memory. The node OS is EulerOS 2.5. Docker containers are deployed. The sizes of the system disk and data disk of the node are 40 GB and 100 GB, respectively. Both the disks are of the high I/O type.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkcce.v3.region.cce_region import CceRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcce.v3 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId)

    client = CceClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(CceRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = CreateNodePoolRequest()
        request.cluster_id = "{cluster_id}"
        listPodSecurityGroupsSpec = [
            SecurityID(
                id=""
            )
        ]
        nodeManagementSpec = NodeManagement(
            server_group_reference=""
        )
        autoscalingSpec = NodePoolNodeAutoscaling(
            enable=False,
            min_node_count=0,
            max_node_count=1,
            scale_down_cooldown_time=0,
            priority=0
        )
        extendParamNodeTemplate = NodeExtendParam(
            max_pods=110,
            alpha_cce_pre_install="",
            alpha_cce_post_install="",
            alpha_cce_node_image_id=""
        )
        primaryNicNodeNicSpec = NicSpec(
            subnet_id="7e767d10-7548-4df5-ad72-aeac1d08bd8a"
        )
        nodeNicSpecNodeTemplate = NodeNicSpec(
            primary_nic=primaryNicNodeNicSpec
        )
        listExtendParamDataVolumes = {
            "useType": "docker"
        }
        listDataVolumesNodeTemplate = [
            Volume(
                size=100,
                volumetype="SAS",
                extend_param=listExtendParamDataVolumes
            )
        ]
        rootVolumeNodeTemplate = Volume(
            size=40,
            volumetype="SAS"
        )
        loginNodeTemplate = Login(
            ssh_key="KeyPair-001"
        )
        nodeTemplateSpec = NodeSpec(
            flavor="s6.large.2",
            az="******",
            os="EulerOS 2.5",
            login=loginNodeTemplate,
            root_volume=rootVolumeNodeTemplate,
            data_volumes=listDataVolumesNodeTemplate,
            node_nic_spec=nodeNicSpecNodeTemplate,
            billing_mode=0,
            extend_param=extendParamNodeTemplate
        )
        specbody = NodePoolSpec(
            type="vm",
            node_template=nodeTemplateSpec,
            initial_node_count=0,
            autoscaling=autoscalingSpec,
            node_management=nodeManagementSpec,
            pod_security_groups=listPodSecurityGroupsSpec
        )
        metadatabody = NodePoolMetadata(
            name="lc-it-nodepool-79796"
        )
        request.body = NodePool(
            spec=specbody,
            metadata=metadatabody,
            api_version="v3",
            kind="NodePool"
        )
        response = client.create_node_pool(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

Create a node pool billed on a pay-per-use basis with the following configurations: The number of nodes is 0. The node pool flavor is 2 vCPUs and 4 GiB of memory. The node OS is EulerOS 2.5. Docker containers are deployed. The sizes of the system disk and data disk of the node are 40 GB and 100 GB, respectively. Both the disks are of the high I/O type.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    cce "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cce/v3/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    projectId := "{project_id}"

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        Build()

    client := cce.NewCceClient(
        cce.CceClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.CreateNodePoolRequest{}
	request.ClusterId = "{cluster_id}"
	idPodSecurityGroups:= ""
	var listPodSecurityGroupsSpec = []model.SecurityId{
        {
            Id: &idPodSecurityGroups,
        },
    }
	serverGroupReferenceNodeManagement:= ""
	nodeManagementSpec := &model.NodeManagement{
		ServerGroupReference: &serverGroupReferenceNodeManagement,
	}
	enableAutoscaling:= false
	minNodeCountAutoscaling:= int32(0)
	maxNodeCountAutoscaling:= int32(1)
	scaleDownCooldownTimeAutoscaling:= int32(0)
	priorityAutoscaling:= int32(0)
	autoscalingSpec := &model.NodePoolNodeAutoscaling{
		Enable: &enableAutoscaling,
		MinNodeCount: &minNodeCountAutoscaling,
		MaxNodeCount: &maxNodeCountAutoscaling,
		ScaleDownCooldownTime: &scaleDownCooldownTimeAutoscaling,
		Priority: &priorityAutoscaling,
	}
	maxPodsExtendParam:= int32(110)
	alphaCcePreInstallExtendParam:= ""
	alphaCcePostInstallExtendParam:= ""
	alphaCceNodeImageIDExtendParam:= ""
	extendParamNodeTemplate := &model.NodeExtendParam{
		MaxPods: &maxPodsExtendParam,
		AlphaCcePreInstall: &alphaCcePreInstallExtendParam,
		AlphaCcePostInstall: &alphaCcePostInstallExtendParam,
		AlphaCceNodeImageID: &alphaCceNodeImageIDExtendParam,
	}
	subnetIdPrimaryNic:= "7e767d10-7548-4df5-ad72-aeac1d08bd8a"
	primaryNicNodeNicSpec := &model.NicSpec{
		SubnetId: &subnetIdPrimaryNic,
	}
	nodeNicSpecNodeTemplate := &model.NodeNicSpec{
		PrimaryNic: primaryNicNodeNicSpec,
	}
	var listExtendParamDataVolumes = map[string]interface{}{
        "useType": "docker",
    }
	var listDataVolumesNodeTemplate = []model.Volume{
        {
            Size: int32(100),
            Volumetype: "SAS",
            ExtendParam: listExtendParamDataVolumes,
        },
    }
	rootVolumeNodeTemplate := &model.Volume{
		Size: int32(40),
		Volumetype: "SAS",
	}
	sshKeyLogin:= "KeyPair-001"
	loginNodeTemplate := &model.Login{
		SshKey: &sshKeyLogin,
	}
	osNodeTemplate:= "EulerOS 2.5"
	billingModeNodeTemplate:= int32(0)
	nodeTemplateSpec := &model.NodeSpec{
		Flavor: "s6.large.2",
		Az: "******",
		Os: &osNodeTemplate,
		Login: loginNodeTemplate,
		RootVolume: rootVolumeNodeTemplate,
		DataVolumes: listDataVolumesNodeTemplate,
		NodeNicSpec: nodeNicSpecNodeTemplate,
		BillingMode: &billingModeNodeTemplate,
		ExtendParam: extendParamNodeTemplate,
	}
	typeSpec:= model.GetNodePoolSpecTypeEnum().VM
	initialNodeCountSpec:= int32(0)
	specbody := &model.NodePoolSpec{
		Type: &typeSpec,
		NodeTemplate: nodeTemplateSpec,
		InitialNodeCount: &initialNodeCountSpec,
		Autoscaling: autoscalingSpec,
		NodeManagement: nodeManagementSpec,
		PodSecurityGroups: &listPodSecurityGroupsSpec,
	}
	metadatabody := &model.NodePoolMetadata{
		Name: "lc-it-nodepool-79796",
	}
	request.Body = &model.NodePool{
		Spec: specbody,
		Metadata: metadatabody,
		ApiVersion: "v3",
		Kind: "NodePool",
	}
	response, err := client.CreateNodePool(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

For SDK sample code of more programming languages, see the Sample Code tab in API Explorer. SDK sample code can be automatically generated.

Status Codes

Status Code

Description

201

The job for creating a node pool in a specified cluster is successfully delivered.

Error Codes

See Error Codes.