You need to enable JavaScript to run this app.
Volcengine Kubernetes Engine

Volcengine Kubernetes Engine

Copy page
Download PDF
NodePool management
UpdateNodePoolNodesConfig
Copy page
Download PDF
UpdateNodePoolNodesConfig
Updates the configurations of nodes in a node pool, including kubelet and containerd parameter settings.​
warning​
  • This API supports only updating the kubelet and containerd parameters of nodes in a node pool and does not support modifying other node pool configurations.​
  • When node configurations are modified, the system applies the configuration changes in batches. Modifying the kubelet configuration restarts kubelet, and modifying the containerd configuration restarts containerd. During the service restart, the nodes and the workloads running on the nodes may be affected. Perform this operation during off-peak hours.​
Request description​
VKE has deployed services in multiple regions globally to provide a stable and low-latency access experience. See Service addresses and select the most suitable endpoint for the region where your business operates.​
  • Request method: POST​
  • Request URL: https://vke.cn-beijing.volcengineapi.com?Action=UpdateNodePoolNodesConfig&Version=2022-05-12​
Debugging​
API Explorer
You can initiate calls online through API Explorer without paying attention to the signature generation process and quickly obtain the call results.
​
Request parameters​
The following table describes the API request parameters. You also need to provide public parameters when calling this API. For details about public request parameters, see Public parameters.​
​
Parameter​
Type​
Required​
Sample value​
Description​
Action​
String​
Yes​
UpdateNodePoolNodesConfig​
The API name. The API name is UpdateNodePoolNodesConfig.​
Version​
String​
Yes​
May 12, 2022​
The API version. The API version is 2022-05-12.​
ClusterId​
String​
Yes​
cc5silumrsfeq****​
The ID of the cluster where the node pool is located.​
You can call the ListClusters API to obtain cluster IDs.​
warning​
The cluster must be in the {Running,[Ok]} or {Updating,[Progressing]} state. You can call the ListClusters API to view the current status of the cluster.​
NodePoolId​
String​
Yes​
pc51i0m6rsfen****​
The node pool ID.​
You can call the ListNodePools API to obtain the node pool ID.​
warning​
The node pool must be in the {Running,[*]} or {Scaling,[Progressing]} state. You can call the ListNodePools API to obtain the current status of the node pool.​
KubeletConfig​
No​
-​
The kubelet configuration for the node.​
ContainerdConfig​
No​
-​
The containerd configuration for the node.​
Description​
At least one of KubeletConfig and ContainerdConfig must be specified.​
NodeIds​
Array of String​
No​
["nc5t5epmrsf***","ndao9ti534q5ge6***"]​
The IDs of the nodes whose configurations are to be synchronized.​
If this field is not configured or an empty list [] is passed in, the configurations of all existing nodes in the node pool are synchronized.​
ClientToken​
String​
Yes​
BC028527-33B9-4990-A633-84E9F9****​
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.​
​
NodePoolKubeletConfig​
​
Parameter​
Type​
Required​
Sample value​
Description​
FeatureGates​
Object of FeatureGates​
No​
-​
The feature gates, which are a set of key-value pairs that describe Kubernetes features.​
TopologyManagerScope​
String​
No​
container​
The resource granularity of the topology management policy. Valid values:​
  • container: The resource alignment granularity is at the container level.​
TopologyManagerPolicy​
String​
No​
none​
The topology management policy. Valid values:​
  • none: The topology management policy is disabled by default.​
  • restricted: kubelet accepts only pods that achieve optimal non-uniform memory access (NUMA) alignment on the requested resources.​
  • best-effort: Kubelet preferentially selects pods that achieve NUMA alignment on CPU and device resources.​
  • single-numa-node: Kubelet allows only pods that are aligned to the same NUMA node in terms of CPU and device resources.​
MaxPods​
Integer​
No​
110​
The maximum pods supported by the nodes. Default value: 110.​
KubeApiQps​
Integer​
No​
50​
The number of QPS for communication with the API server. ​
  • The value is an integer. Valid values: 1 to 500.​
  • The default value is 50.​
KubeApiBurst​
Integer​
No​
100​
The maximum burst requests sent to the API server per second.​
  • Enter an integer from 1 to 1000.​
  • The default value is 100.​
tip​
This value must be greater than or equal to the value of the KubeApiQps parameter.​
EvictionHard​
Array of EvictionHard​
No​
-​
A set of hard eviction thresholds that trigger pod eviction. For detailed parameter descriptions, see the official documentation.​
To explicitly disable hard eviction, set the threshold to 0% or 100% on any resource.​
Default values:​
  • memory.available: "300Mi"​
  • nodefs.available: "10%"​
  • nodefs.inodesFree: "5%"​
  • imagefs.available: "15%"​
KubeReserved​
Array of ComputeResource​
No​
-​
The resources reserved by the node for Kubernetes system components. By default, resources are reserved based on half of the default value in the node resource reservation policy.​
SystemReserved​
Array of ComputeResource​
No​
-​
The resources reserved for the operating system on the node. By default, resources are reserved based on half of the default value in the node resource reservation policy.​
RegistryPullQps​
Integer​
No​
5​
The QPS threshold for a cluster pulling images from Container Registry (CR).​
  • The value is an integer. Valid values: 1 to 50.​
  • Default value: 5.​
RegistryBurst​
Integer​
No​
10​
The maximum images concurrently pulled from CR.​
  • The value is an integer. Valid values: 1 to 100.​
  • Default value: 10.​
tip​
You need to specify this parameter only when the value of the RegistryPullQps parameter is greater than 0. The value of this parameter must be greater than or equal to the value of the RegistryPullQps parameter.​
SerializeImagePulls​
Boolean​
No​
true​
Specify whether to serially pull images. Valid values:​
  • true: Serially pull images.​
  • false: (Default) Pull images in parallel to accelerate pod startup.​
CpuManagerPolicy​
String​
No​
none​
The CPU manager policy. Valid values:​
  • none: The policy is the default policy.​
  • static: This policy allows pods with specific resource characteristics on the node to be granted enhanced CPU affinity and exclusivity.​
FailSwapOn​
Boolean​
No​
false​
Specifies whether kubelet can run when swap is enabled on the node. Valid values:​
  • true: Prevents kubelet from running when swap is enabled on the node. This is the default value. This is the default protection mechanism in Kubernetes. Swap can interfere with precise memory limit control. As a result, containers may use more memory than expected, affecting the accuracy of Pod scheduling and out-of-memory (OOM) detection.​
  • false: Allows kubelet to run when swap is enabled on the node. This option applies when strict memory isolation is not required or when Kubernetes must run on existing nodes with swap configured.​
PodPidsLimit​
Integer​
No​
4096​
This parameter limits the maximum number of process IDs (PIDs) that all containers in a single Pod can use. This prevents a single Pod from creating excess processes and exhausting the PID resources of the node.​
  • The value is an integer. Valid values: -1 or a positive integer. Unit: count.​
  • When the value is set to -1, it indicates that the number of PIDs that a single Pod can use is not limited.​
tip​
  • This configuration only limits the number of PIDs that a single Pod can use. The actual number of PIDs available to a Pod is also affected by the PID limit of the node kernel and the PID usage of other processes on the node.​
  • We do not recommend setting the value to -1. We recommend setting the value based on the PID capacity of the node, the number of processes required by each Pod, and the number of Pods the node can run. This prevents a single Pod from exhausting the PID resources of the node. In addition, do not set a value that is too low. Otherwise, the Pod cannot create processes as expected.​
ImageMaximumGcAge​
String​
No​
24h​
The maximum retention duration for unused images before they are garbage collected. Images that have remained unused for longer than this period will be cleaned up during the next garbage collection cycle.​
  • The Kubernetes duration. The value is a string. It supports time units, such as 48h and 168h.​
  • The default value is 0s, which indicates that images are not cleaned up based on time limits and are garbage collected only based on disk utilization (ImageGcHighThresholdPercent).​
warning​
  • When this parameter is set to a non-zero value, it must be greater than ImageMinimumGcAge.​
  • This parameter is supported only in clusters running on Kubernetes v1.30 or later.​
ImageMinimumGcAge​
String​
No​
5m​
The minimum retention duration for unused images before they are garbage collected. During this time, the image will not be garbage collected even if disk utilization exceeds the garbage collection threshold.​
  • The Kubernetes duration. The value is a string. It supports time units, such as 2m and 30m.​
  • The default value is 2m.​
  • This parameter prevents a newly pulled image from being garbage collected immediately. This keeps the image available during the window between the pull and container startup.​
Description​
Do not set a value that is too high. Otherwise, newly downloaded images that are not used in the short term cannot be cleaned up in time when disk space is tight. This potentially increases disk pressure.​
ImageGcLowThresholdPercent​
Integer​
No​
80​
The threshold for stopping Image garbage collection. During image garbage collection, collection stops when disk usage falls below this percentage.​
  • The value is an integer. Valid values: 0 to 100.​
  • Default value: 80.​
  • Unit: percentage.​
Note​
  • When specifying this parameter, make sure that ImageGcLowThresholdPercent is less than ImageGcHighThresholdPercent. Even if only one of the parameters is modified, the system validates it against the default value or the original configuration of the other parameter.​
  • You can set this parameter to 0. However, this value stops cleanup only after disk usage reaches 0%, which is almost impossible and has no practical value.​
ImageGcHighThresholdPercent​
Integer​
No​
85​
The threshold for triggering image garbage collection. When disk utilization exceeds this value, garbage collection will be triggered. Unused images will be cleaned up to release disk space.​
  • The value is an integer. Valid values: 0 to 100.​
  • Default value: 85.​
  • Unit: percentage.​
Note​
  • When specifying this parameter, make sure that ImageGcLowThresholdPercent is less than ImageGcHighThresholdPercent. Even if only one of the parameters is modified, the system validates it against the default value or the original configuration of the other parameter.​
  • You can set this parameter to 100. However, this value triggers cleanup only when disk usage reaches 100%. This value is extremely conservative and not recommended in production environments.​
​
FeatureGates​
​
Parameter​
Type​
Required​
Sample value​
Description​
QoSResourceManager​
Boolean​
No​
false​
Specify whether to enable quality of service (QoS) Resource Manager to support micro-topology scheduling. Valid values:​
  • true: Enable QoS Resource Manager.​
  • false: (Default) Disable QoS Resource Manager.​
tip​
This configuration takes effect only in clusters of the following versions:​
  • v1.24.15-vke.13 ≤ Cluster version < v1.26​
  • v1.26.10-vke.13 ≤ Cluster version < v1.28​
InPlacePodVerticalScaling​
Boolean​
No​
true​
Specify whether to enable the vertical scaling feature for pods. Valid values:​
  • true: Enable the vertical scaling feature for pods.​
  • false: Disable it.​
warning​
This configuration is supported only by the following cluster versions. Attempting to configure it on clusters of other versions is not allowed and will result in an error:​
  • v1.28.3-vke.17 ≤ Custer version < v1.36​
​
EvictionHard​
​
Parameter​
Type​
Required​
Sample value​
Description​
Key​
String​
Yes​
memory.available​
The name of the hard eviction threshold. Valid values:​
  • memory.available​
  • nodefs.available​
  • nodefs.inodesFree​
  • imagefs.available​
Value​
String​
Yes​
1Gi​
The hard eviction threshold value. The value can be an integer or a percentage.​
  • If the value is an integer, it indicates the specific threshold value of the resource. Unit: bytes. For example: 100Mi.​
  • If the value is a percentage, it indicates the proportion of the resource threshold value. Valid values: 0% to 100%. For example: 20%. To explicitly disable hard eviction, set the threshold to 0% or 100% on any resource.​
​
ComputeResource​
​
Parameter​
Type​
Required​
Sample value​
Description​
Name​
String​
Yes​
cpu​
The resource name. Set the value to cpu or memory.​
Quantity​
String​
Yes​
1G​
Specify the quantity of the resource.​
  • When the resource is cpu, the example value is 200m.​
  • When the resource is memory, the sample value is 1 GB.​
​
NodePoolContainerdConfig​
​
Parameter​
Type​
Required​
Sample value​
Description​
ConcurrentLayerFetchBuffer​
Integer​
No​
512​
The buffer size used when a single image layer is concurrently pulled in chunks. The value is a positive integer. Unit: bytes.​
Description​
This parameter is supported only if the containerd version is v2.1.0 or later.​
MaxConcurrentUnpacks​
Integer​
No​
8​
The maximum number of image layers that containerd can decompress simultaneously.​
  • The value is a positive integer. Default value: 1.​
  • This parameter takes effect only if UseLocalImagePull is set to false.​
Description​
This parameter is supported only if the containerd version is v2.2.0 or later.​
MaxConcurrentDownloads​
Integer​
No​
10​
The maximum number of image layers that containerd can download concurrently when pulling images at a time.​
  • The value is a positive integer. Default value: 3.​
  • If you do not specify this parameter, the default value is used.​
Description​
This parameter is supported only if the containerd version is v2.1.0 or later.​
UseLocalImagePull​
Boolean​
No​
true​
The image pull mode of containerd. Valid values:​
  • true: (Default) Use a local client to pull images.​
  • false: Use Transfer Service to pull images.​
Description​
This parameter is supported only if the containerd version is v2.1.0 or later.​
​
Sample requests​
​
POST https://vke.cn-beijing.volcengineapi.com?Action=UpdateNodePoolNodesConfig&Version=2022-05-12​
Content-Type: application/json​
{​
"ClusterId": "cc5silum********",​
"NodePoolId": "pc51i0m6********",​
"KubeletConfig": {​
"MaxPods": 110,​
"FailSwapOn": true,​
"KubeApiQps": 50,​
"EvictionHard": [​
{​
"Key": "memory.available",​
"Value": "1Gi"​
}​
],​
"FeatureGates": {​
"QoSResourceManager": false​
},​
"KubeApiBurst": 100,​
"KubeReserved": [​
{​
"Name": "cpu",​
"Quantity": "1G"​
}​
],​
"PodPidsLimit": 4096,​
"RegistryBurst": 10,​
"SystemReserved": [​
{​
"Name": "cpu",​
"Quantity": "1G"​
}​
],​
"RegistryPullQps": 5,​
"CpuManagerPolicy": "none",​
"ImageMaximumGcAge": "24h",​
"ImageMinimumGcAge": "5m",​
"SerializeImagePulls": true,​
"TopologyManagerScope": "container",​
"TopologyManagerPolicy": "none",​
"ImageGcLowThresholdPercent": 80,​
"ImageGcHighThresholdPercent": 85​
},​
"ContainerdConfig": {​
"UseLocalImagePull": false,​
"MaxConcurrentUnpacks": 8,​
"MaxConcurrentDownloads": 10,​
"ConcurrentLayerFetchBuffer": 512​
},​
"NodeIds": [​
"nc5t5epmrsf***"​
],​
"ClientToken": "BC028527-33B9-4990-A633-84E9F9****"​
}
​
Response parameter​
The following table contains the response parameters of this API. See Response results for details about public response parameters.​
​
Parameter​
Type​
Sample value​
Description​
TaskId​
String​
tcax******​
Task ID.​
​
Sample responses​
​
{​
"ResponseMetadata": {​
"RequestId": "20230604110420****100232280022D31",​
"Action": "UpdateNodePoolNodesConfig",​
"Version": "2022-05-12",​
"Service": "vke",​
"Region": "cn-beijing"​
},​
"Result": {​
"TaskId": "tcax******"​
}​
}
​
Error code​
The error codes for this API are listed in the table below. For public error codes, see Public error codes.​
​
HTTP status code​
Error code​
Error message​
Description​
400​
InvalidParameter.{{parameter}}​
The specified parameter {{parameter}} is invalid.​
The request parameters are invalid, such as incorrect parameter types, invalid lengths, invalid enumeration values, and failure to satisfy regular expression rules. For example, InvalidParameter.MaxPods and InvalidParameter.KubeApiQps.​
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​
OperationDenied.NodeStatus​
The action is forbidden on node {{nodeId}} due to node status {{statusPhase}} and {{statusConditions}}.​
The current node status does not support this operation. Please confirm the required node status for this API and try again.​
400​
NotSupported.{{parameter}}​
The specified {{resourceType}} {{resourceContent}} is not supported.​
The specified resources cannot be installed.​
​
Last updated: 2026.10.10 17:41:57