Volcengine Kubernetes Engine
Parameter | Type | Required | Sample value | Description |
Parameter | Type | Required | Sample value | Description |
Action | String | Yes | CreateNodes | The API name. The name of the current API is CreateNodes. |
Version | String | Yes | May 12, 2022 | The API version. The API version is 2022-05-12. |
ClientToken | String | No | ed6b1190-dc17-11ec-9519-eb58a7****** | A string used to ensure the idempotency of the request. This string is passed in by the caller and must be unique across different requests. ClientToken is case-sensitive and can consist of 64 ASCII characters at most. |
ClusterId | String | Yes | cc5sil****** | Cluster ID. warning The cluster must be in {Running,[*]} or {Updating,[Progressing]} state. You can call the ListClusters API to obtain the current status of the cluster. |
NodePoolId | String | No | pjklj****** | The node pool ID.
warning If a custom node pool ID is provided here, the nodes to be added will use the Kubernetes and node configurations of the custom node pool. This includes ECS instance tags, labels, taints, node cordon configuration, project, node name prefix, and more. Therefore, the InitializeScript, KubernetesConfig, and ImageId parameters will be invalid. These parameters are only valid for adding existing nodes to the default node pool. |
InstanceIds | Array of String | Yes | ["i-ybo9229pdf****","i-ybo9229pdf****"] | The ID of the ECS instance to be added to the cluster. Up to 100 ECS instance IDs can be specified per call. You can call the DescribeInstances API to obtain ECS instance IDs. The ECS instance must meet the following conditions:
warning When adding ECS instances to a custom node pool, note the following:
|
KeepInstanceName | Boolean | No | false | Whether to retain the original ECS instance name. Values:
|
AdditionalContainerStorageEnabled | Boolean | No | false | Specifies whether to format and mount the data volume of the node as the storage directory for container images and logs. Valid values:
|
ContainerStoragePath | String | No | /dev/vdb | Use this data volume device to mount the container and image storage directory /var/lib/containerd. It is valid only when AdditionalContainerStorageEnabled is true. It cannot be empty. The following conditions must be met to achieve successful initialization.
warning
|
ImageId | String | No | image-k******* | The ID of the image used by the ECS instance that corresponds to the node. Image IDs vary based on different types of images. For details, see Public images supported by VKE. warning If this parameter is not specified, an image ID from the veLinux 2.0 series is preferentially allocated. |
InitializeScript | String | No | ZWNo****** | The script executed after creating the ECS node and deploying Kubernetes components. Enter the Base64-encoded shell script.
tip Base64-encoded content can be up to 8 KB in length. If you specify both the InitializeScript and PreScript parameters, the total length of the two parameter values cannot exceed 8 KB. |
KubernetesConfig | No | - | Kubernetes configuration for the node.
| |
SkipReplaceSystem | Boolean | No | true | Whether to skip system resetting when adding an existing node:
warning If you skip resetting the system (set the parameter to true), ensure:
|
PreScript | String | No | ZWNoby****** | [Beta - apply for trial] The script to execute before node deployment. Enter the Base64-encoded shell script. tip
|
GpuDriverVersion | String | No | 550.127.05 | [This parameter is deprecated. Use GpuDriverConfig instead.] Specifies the GPU driver version to be installed on the node. You can call the ListSupportedGpuDriverVersions API to obtain the list of GPU driver versions that can be installed for an image. |
GpuDriverConfig | No | - | GPU driver configuration for the node. This configuration takes precedence over the GpuDriverVersion field. tip
| |
ContainerStorageMountPoint | String | No | /mnt/vdb | The target mount directory after the data volume device is formatted. This parameter is used together with ContainerStoragePath. If it is not specified, the default directory will be used. This parameter is valid only if AdditionalContainerStorageEnabled is set to true. |
Parameter | Type | Required | Sample value | Description |
Parameter | Type | Required | Sample value | Description |
Cordon | Boolean | No | false | Whether to cordon nodes. Valid values:
tip When you update the configurations of a node pool, if you do not specify this parameter, the original parameter configurations are retained. |
Labels | No | - | The Kubernetes labels of the node pool or the node. Up to 20 labels can be provided. tip The node pool manages the label configurations of nodes in a centralized manner. Therefore, the label information will be synchronized to all nodes in the node pool. When labels are changed, the original label configurations will be overwritten. | |
Taints | No | - | The Kubernetes taints of the node pool or the node. Up to 20 taints can be specified. tip The node pool manages the taint configurations of nodes in a centralized manner. Therefore, the taint information will be synchronized to all nodes in the node pool. When taints are changed, the original taint configurations will be overwritten. |
Parameter | Type | Required | Sample value | Description |
Parameter | Type | Required | Sample value | Description |
Key | String | Yes | label-key | A valid label key consists of <prefix> and <Name>, which are separated by a slash (/).
|
Value | String | No | label-value |
|
Parameter | Type | Required | Sample value | Description |
Parameter | Type | Required | Sample value | Description |
Key | String | Yes | taint-key | A valid taint key consists of a prefix and a name, which are separated by a slash (/).
|
Value | String | No | taint-value |
|
Effect | String | No | NoSchedule | The taint effect. Valid values:
|
Parameter | Type | Required | Sample value | Description |
Parameter | Type | Required | Sample value | Description |
GpuDriverVersion | String | No | 580.105.08 | Specifies the GPU driver version to be installed on the node.
|
InstallGpuDriver | Boolean | No | true | Specifies whether to automatically install the GPU driver when the ECS instance is a GPU-type model and uses a public base image (for example, veLinux 1.0 or Ubuntu 22.04). Valid values:
tip
|
Parameter | Type | Sample value | Description |
Parameter | Type | Sample value | Description |
Ids | Array of String | ["nc5t5epmrsf****"] | A list of node IDs. |
HTTP status code | Error code | Error message | Description |
HTTP status code | Error code | Error message | Description |
400 | QuotaExceeded.Node | The number of nodes in the cluster has reached the limit. | The number of nodes in the current cluster has reached the limit. You can select another region or submit a ticket to apply for a quota increase. |
400 | OperationDenied.ClusterStatus | The action is forbidden due to cluster status {{statusPhase}} and {{statusConditions}}. | The current status of the specified cluster does not support this operation. Confirm the required cluster status for this API and try again. |
400 | OperationDenied.NodePoolStatus | The action is forbidden on node pool {{nodePoolId}} due to node pool status {{statusPhase}} and {{statusConditions}}. | The current status of the specified node pool does not support this operation. Please confirm the required node pool status for this API and try again. |
400 | ClusterVpcMismatch.{{parameter}} | The specified {{resourceType}} {{resourceId}} is not in the VPC of cluster. | The specified subnets, security groups, and HPC cluster belong to different VPCs from the cluster. Make sure that they are in the same VPC as the cluster. |
400 | LimitExceeded.NodeInCluster | The number of nodes exceeds the cluster-defined pods config limit. | The maximum nodes specified for the node pool exceeds the maximum nodes supported by the Flannel cluster. For limits on various resources of VKE, see Resource limits. The supported maximum nodes depend on PodsConfig.FlannelConfig.PodCidrs and MaxPodsPerNode. After a cluster is created, it cannot be modified. You need to plan cluster settings based on your business requirements. |
400 | AlreadyInUse.{{parameter}} | The specified {{resourceType}} {{resourceId}} has already been used in another cluster. | The specified ECS instance has already been added to a cluster. Use another instance or remove this instance from the existing cluster, and try again later. |
400 | OperationDenied.InstanceStatus | The operation has been denied due to the wrong status of the specified ECS instance {{instanceId}}. | The current ECS instance status does not support this operation. Confirm the required ECS instance status for calling this API and try again. |
400 | ZoneMismatch.Instance | The specified ECS instance {{instanceId}} is not in the cluster defined zones. | The availability zone of the added instance is not among the availability zones corresponding to the pod subnets of the vpc-cni cluster. |
400 | NotSupported.{{parameter}} | The specified {{resourceType}} {{resourceContent}} is not supported. | The specified parameter (such as InstanceType or ImageId) is not supported. Check the parameter and try again. |
400 | ClusterVersionMismatch.ImageId | The specified ImageId {{imageId}} and KubernetesVersion {{kubernetesVersion}} are mismatched. | The specified image ID (ImageId) does not match the cluster Kubernetes version. Specify appropriate parameter values based on the parameter descriptions and try again. |
400 | ImageIdMismatch.InstanceId | The specified InstanceId {{instanceId}} and ImageId {{imageId}} are mismatched. | The specified ECS Instance IDs (InstanceIds) do not match the image ID (ImageId). Specify appropriate parameter values based on the parameter descriptions and try again. |
400 | OperationDenied.NodePoolReplicas | The operation has been denied due to the node pool min/max replicas limit. | The maximum node count for this node pool has been reached. Please reduce the number of ECS instance IDs to be added and try again later. If autoscaling is enabled for the target node pool, you can update the maximum number of nodes (MaxReplicas) in the target node pool. Then, call this API again to add existing nodes. Call the UpdateNodePoolConfig API to update the node pool. |
400 | AlreadyInScalingGroup.{{parameter}} | The specified InstanceId {{instanceId}} has already been used in another scaling group. | The specified instance is already used by another scaling group and cannot be added to the node pool. |
400 | NodePoolConfigMismatch.InstanceId | The specified InstanceId {{instanceId}} and nodePool Config {{content}} are mismatched. | The specified ECS instances (InstanceIds) do not match the configuration of the target node pool (NodePoolId). The node pool configuration includes the system volume, data volume, project, and more. Confirm the configuration alignment between the ECS instances and the target node pool before retrying. |
400 | OperationDenied.NodePoolAutoScalingEnabled | The operation has been denied because nodePool AutoScaling is enabled. | The target node pool has the autoscaling feature enabled. Adding existing ECS instances to this node pool is not supported. Disable autoscaling for the node pool or change the node pool, and then retry. |
400 | OperationDenied.InstanceEniNumber | The operation has been denied because the InstanceId {{instanceId}} has more than one eni. | The specified ECS instance has more than one NIC (including a secondary NIC), so the instance cannot be added to a node pool. Unbind the secondary NIC from the node pool or use a different ECS instance before retrying. |
400 | ImageSizeMismatch.SystemVolumeSize | The specified system volume size and image size are mismatched. | The specified system volume size does not match the image size. The system volume must be at least 10 GiB larger than the image. Specify appropriate parameter values based on the parameter descriptions and try again. |
404 | NotFound.DefaultNodePool | The default node pool is not found. | The default node pool does not exist. Create the default node pool in the console first. |
409 | AlreadyExists.{{parameter}} | The specified {{resourceType}} {{resourceId}} already exists. | The specified ECS instance has been added to the default node pool. |
400 | AffinityGroupMismatch.InstanceIds | The specified InstanceIds and AffinityGroup {{AffinityGroupId}} are mismatched. | The specified ECS instances do not match the affinity group configuration. The number of nodes in the affinity group-based node pool must be an integer multiple of the affinity group size. Check the specified nodes and node pools, confirm the relevant parameters, and try again later. |
400 | OperationDenied.CloudAssistantStatus | The operation has been denied due to the cloud assistant wrong status of the specified ECS instance {{instanceId}}. | The Cloud Assistant agent on the ECS instance is not in an expected state. The instance cannot be added to the cluster. Check the parameter and try again. |
400 | LimitExceeded.ScriptLength | The InitializeScript and PreScript total length exceeds maximum allowed length. | The total length of the pre-script and post-script exceeds the limit. Specify appropriate parameter values based on the parameter descriptions and try again. |