All Products
Search
Document Center

Container Service for Kubernetes:Customize ACK Pro control plane component parameters

Last Updated:Mar 19, 2025

To accommodate the need for adjusting control plane parameters in a production environment, Container Service for Kubernetes offers a feature for customizing control plane parameters. You can modify parameters of core managed components such as kube-apiserver, kube-controller-manager (KCM), cloud-controller-manager (CCM), and kube-scheduler according to your needs. This topic explains how to customize control plane parameters in the Container Service Management Console.

Considerations

  • Currently, only ACK managed cluster Pro edition, ACK Serverless cluster Pro edition, ACK Edge cluster Pro edition, and ACK Lingjun cluster support the customization of certain core control plane component parameters. For a list of customizable parameters, see Default Parameters List. For more details, consult the console interface. Some parameters are only supported in specific versions of clusters. If a cluster upgrade is required, see Manually Upgrade a Cluster.

  • After customizing the parameters, the control plane will restart. It is advisable to perform this operation during off-peak hours.

  • Customizing parameters will overwrite the default settings provided by the original cluster, rendering them invalid. When setting custom parameters, ensure they are accurate and complete. Incorrect parameters may prevent the control plane from starting. For detailed parameter guidance, refer to the Kubernetes official documentation based on your cluster version: kube-apiserver, kube-controller-manager, kube-scheduler.

Customize control plane component parameters

The process for customizing parameters is similar across different components. The following steps illustrate how to customize the parameters of kube-apiserver.

  1. Log on to the ACK console. In the left-side navigation pane, click Clusters.

  2. On the Clusters page, find the cluster that you want to manage and click its name. In the left-side navigation pane, choose Operations > Add-ons.

  3. In the Core Components area, find the target component, and then click Configuration in the lower-right corner of the card.

  4. In the Kube API Server Parameter Configuration dialog box, enter your custom parameters, ensuring they are complete and correct, and then click OK.

Default parameters list

ACK managed cluster Pro edition

Component Name

Parameter

Parameter Description

Kube API Server

enableAdmissionPlugins

By default, this field is left empty.

serviceNodePortRange

Valid values: 10000 to 65535. By default, this parameter is left empty.

Important

Exercise caution when you modify the node port range. Ensure that the node port range does not conflict with the port range of the net.ipv4.ip_local_port_range parameter provided by the Linux kernel on cluster nodes. For more information, see How to correctly configure the NodePort range?.

requestTimeout

By default, this field is left empty.

defaultNotReadyTolerationSeconds

By default, this field is left empty.

defaultUnreachableTolerationSeconds

By default, this field is left empty.

maxMutatingRequestsInflight

Valid values: 1 to 1000. By default, this parameter is left empty.

maxRequestsInflight

Valid values: 1 to 3000. By default, this parameter is left empty.

featureGates

Optional parameters include ServerSideApply, TTLAfterFinished, EphemeralContainers, RemoveSelfLink, HPAScaleToZero. By default, this field is left empty.

Note

HPAScaleToZero is supported in Kubernetes 1.18 and later. RemoveSelfLink cannot be modified in Kubernetes 1.24 and later.

oidcIssuerURL

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

Important
  • After you configure oidcIssuerURL, the API server in the cluster will access the address corresponding to the oidcIssuerURL configuration item. If your service domain name is a public domain name, ensure that the cluster has enabled public access capability. For specific operations, see Enable public access for the cluster.

  • If the API server still cannot access the address in the oidcIssuerURL configuration item after the cluster has enabled public access, you can check the number of IPs in the Kubernetes backend by using kubectl get endpoints.

    • If there is more than one IP, log on to the worker node to try to access the oidcIssuerURL and check the public network configuration, security group rules, etc.

    • If there is only one IP, submit a ticket for processing.

oidcClientId

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcUsernameClaim

The default value is sub. Supported in Kubernetes 1.18 and later.

oidcUsernamePrefix

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcGroupsPrefix

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcGroupsClaim

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcRequiredClaim

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcCAContent

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

hostAliases

By default, this field is left empty. Supported in Kubernetes 1.26 and later.

enableTrace

By default, this field is left empty. Supported in Kubernetes 1.28 and later.

samplingRatePerMillion

Kube Controller Manager

horizontalPodAutoscalerSyncPeriod

By default, this field is left empty.

horizontalPodAutoscalerTolerance

By default, this field is left empty.

concurrentTTLAfterFinishedSyncs

By default, this field is left empty.

concurrentHorizontalPodAutoscalerSyncs

By default, this field is left empty. Supported in Kubernetes 1.26 and later.

largeClusterSizeThreshold

By default, this field is left empty.

unhealthyZoneThreshold

By default, this field is left empty.

secondaryNodeEvictionRate

By default, this field is left empty.

nodeEvictionRate

By default, this field is left empty.

terminatedPodGCThreshold

By default, this field is left empty.

kubeAPIQPS

Valid values: 1 to 1000. By default, this parameter is left empty.

kubeAPIBurst

Valid values: 1 to 1000. By default, this parameter is left empty.

concurrentCSRSyncs

By default, this field is left empty. Supported in Kubernetes 1.32 and later.

concurrentNodeTaintSyncs

By default, this field is left empty. Supported in Kubernetes 1.32 and later.

featureGates

The optional parameter is TTLAfterFinished. By default, this field is left empty.

Cloud Controller Manager

routeTableIDs

By default, this field is left empty. If there are multiple route tables in the VPC, you can manually set CCM to support multiple route table IDs, separated by commas (,), for example, vtb-**,vtb***.

Kube Scheduler

For information about customizing parameters through Kube Scheduler, see Customize Scheduler Parameters.

ACK Serverless cluster Pro edition

Component Name

Parameter

Parameter Description

Kube API Server

enableAdmissionPlugins

By default, this field is left empty.

requestTimeout

By default, this field is left empty.

defaultNotReadyTolerationSeconds

By default, this field is left empty.

defaultUnreachableTolerationSeconds

By default, this field is left empty.

maxMutatingRequestsInflight

Valid values: 1 to 1000. By default, this parameter is left empty.

maxRequestsInflight

Valid values: 1 to 3000. By default, this parameter is left empty.

featureGates

Optional parameters include ServerSideApply, TTLAfterFinished, EphemeralContainers, RemoveSelfLink, HPAScaleToZero. By default, this field is left empty.

Note

HPAScaleToZero is supported in Kubernetes 1.18 and later. RemoveSelfLink cannot be modified in Kubernetes 1.24 and later.

oidcIssuerURL

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcClientId

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcUsernameClaim

The default value is sub. Supported in Kubernetes 1.18 and later.

oidcUsernamePrefix

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcGroupsPrefix

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcGroupsClaim

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcRequiredClaim

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcCAContent

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

Kube Controller Manager

horizontalPodAutoscalerSyncPeriod

By default, this field is left empty.

horizontalPodAutoscalerTolerance

By default, this field is left empty.

concurrentTTLAfterFinishedSyncs

By default, this field is left empty.

kubeAPIQPS

Valid values: 1 to 1000. By default, this parameter is left empty.

kubeAPIBurst

Valid values: 1 to 1000. By default, this parameter is left empty.

featureGates

The optional parameter is TTLAfterFinished. By default, this field is left empty.

Kube Scheduler

Multiple parameters. Currently open in the whitelist.

For information about customizing parameters through Kube Scheduler, see Customize Scheduler Parameters.

ACK edge cluster Pro edition

Component Name

Parameter

Parameter Description

Kube API Server

enableAdmissionPlugins

By default, this field is left empty.

serviceNodePortRange

Valid values: 10000 to 65535. By default, this parameter is left empty.

Important

Exercise caution when you modify the node port range. Ensure that the node port range does not conflict with the port range of the net.ipv4.ip_local_port_range parameter provided by the Linux kernel on cluster nodes. For more information, see How to correctly configure the NodePort range?.

requestTimeout

By default, this field is left empty.

defaultNotReadyTolerationSeconds

By default, this field is left empty.

defaultUnreachableTolerationSeconds

By default, this field is left empty.

maxMutatingRequestsInflight

Valid values: 1 to 1000. By default, this parameter is left empty.

maxRequestsInflight

Valid values: 1 to 3000. By default, this parameter is left empty.

featureGates

Optional parameters include ServerSideApply, TTLAfterFinished, EphemeralContainers, RemoveSelfLink, HPAScaleToZero. By default, this field is left empty.

Note

HPAScaleToZero is supported in Kubernetes 1.18 and later. RemoveSelfLink cannot be modified in Kubernetes 1.24 and later.

oidcIssuerURL

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcClientId

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcUsernameClaim

The default value is sub. Supported in Kubernetes 1.18 and later.

oidcUsernamePrefix

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcGroupsPrefix

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcGroupsClaim

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcRequiredClaim

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcCAContent

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

Kube Controller Manager

horizontalPodAutoscalerSyncPeriod

By default, this field is left empty.

concurrentTTLAfterFinishedSyncs

By default, this field is left empty.

largeClusterSizeThreshold

By default, this field is left empty.

unhealthyZoneThreshold

By default, this field is left empty.

secondaryNodeEvictionRate

By default, this field is left empty.

nodeEvictionRate

By default, this field is left empty.

podEvictionTimeout

By default, this field is left empty.

kubeAPIQPS

Valid values: 1 to 1000. By default, this parameter is left empty.

kubeAPIBurst

Valid values: 1 to 1000. By default, this parameter is left empty.

featureGates

The optional parameter is TTLAfterFinished. By default, this field is left empty.

Cloud Controller Manager

routeTableIDs

By default, this field is left empty. If there are multiple route tables in the VPC, you can manually set CCM to support multiple route table IDs, separated by commas (,), for example, vtb-**,vtb***.

Kube Scheduler

For information about customizing parameters through Kube Scheduler, see Customize Scheduler Parameters.

Ack Lingjun cluster

Component Name

Parameter

Parameter Description

Kube API Server

enableAdmissionPlugins

By default, this field is left empty.

serviceNodePortRange

Valid values: 10000 to 65535. By default, this parameter is left empty.

Important

Exercise caution when you modify the node port range. Ensure that the node port range does not conflict with the port range of the net.ipv4.ip_local_port_range parameter provided by the Linux kernel on cluster nodes. For more information, see How to correctly configure the NodePort range?.

requestTimeout

By default, this field is left empty.

defaultNotReadyTolerationSeconds

By default, this field is left empty.

defaultUnreachableTolerationSeconds

By default, this field is left empty.

maxMutatingRequestsInflight

Valid values: 1 to 1000. By default, this parameter is left empty.

maxRequestsInflight

Valid values: 1 to 3000. By default, this parameter is left empty.

featureGates

Optional parameters include ServerSideApply, TTLAfterFinished, EphemeralContainers, RemoveSelfLink, HPAScaleToZero. By default, this field is left empty.

Note

HPAScaleToZero is supported in Kubernetes 1.18 and later. RemoveSelfLink cannot be modified in Kubernetes 1.24 and later.

oidcIssuerURL

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcClientId

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcUsernameClaim

The default value is sub. Supported in Kubernetes 1.18 and later.

oidcUsernamePrefix

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcGroupsPrefix

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcGroupsClaim

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcRequiredClaim

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

oidcCAContent

By default, this field is left empty. Supported in Kubernetes 1.18 and later.

Kube Controller Manager

horizontalPodAutoscalerSyncPeriod

By default, this field is left empty.

horizontalPodAutoscalerTolerance

By default, this field is left empty.

concurrentTTLAfterFinishedSyncs

By default, this field is left empty.

largeClusterSizeThreshold

By default, this field is left empty.

unhealthyZoneThreshold

By default, this field is left empty.

secondaryNodeEvictionRate

By default, this field is left empty.

nodeEvictionRate

By default, this field is left empty.

podEvictionTimeout

By default, this field is left empty.

kubeAPIQPS

Valid values: 1 to 1000. By default, this parameter is left empty.

kubeAPIBurst

Valid values: 1 to 1000. By default, this parameter is left empty.

featureGates

The optional parameter is TTLAfterFinished. By default, this field is left empty.

Cloud Controller Manager

routeTableIDs

By default, this field is left empty. If there are multiple route tables in the VPC, you can manually set CCM to support multiple route table IDs, separated by commas (,), for example, vtb-**,vtb***.

Kube Scheduler

For information about customizing parameters through Kube Scheduler, see Customize Scheduler Parameters.