Updated on 2024-12-04 GMT+08:00

Cluster Configuration Management

Scenario

CCE allows you to manage cluster parameters, through which you can let core components work under your requirements.

Constraints

This function is supported only in clusters of v1.15 and later. It is not displayed for versions earlier than v1.15.

Procedure

  1. Log in to the CCE console. In the navigation pane, choose Clusters.
  2. Locate the target cluster, click ... to view more operations on the cluster, and choose Manage.
  3. On the Manage Components page on the right, change the values of the Kubernetes parameters listed in the following table.

    Table 1 kube-apiserver configuration

    Item

    Parameter

    Description

    Value

    Toleration time for nodes in NotReady state

    default-not-ready-toleration-seconds

    Specifies the default tolerance time. The configuration takes effect for all pods by default. You can configure different tolerance time for pods. In this case, the tolerance time configured for the pod is used. For details, see Taints and Tolerations.

    If the specified tolerance time is too short, pods may be frequently migrated in scenarios like a network jitter. If the specified tolerance time is too long, services may be interrupted during this period after the node is faulty.

    Default: 300s

    Toleration time for nodes in unreachable state

    default-unreachable-toleration-seconds

    Specifies the default tolerance time. The configuration takes effect for all pods by default. You can configure different tolerance time for pods. In this case, the tolerance time configured for the pod is used. For details, see Taints and Tolerations.

    If the specified tolerance time is too short, pods may be frequently migrated in scenarios like a network jitter. If the specified tolerance time is too long, services may be interrupted during this period after the node is faulty.

    Default: 300s

    Maximum Number of Concurrent Modification API Calls

    max-mutating-requests-inflight

    Maximum number of concurrent mutating requests. When the value of this parameter is exceeded, the server rejects requests.

    The value 0 indicates that there is no limitation on the maximum number of concurrent modification requests. This parameter is related to the cluster scale. You are advised not to change the value.

    Manual configuration is no longer supported since cluster v1.21. The value is automatically specified based on the cluster scale.

    • 200 for clusters with 50 or 200 nodes
    • 500 for clusters with 1000 nodes
    • 1000 for clusters with 2000 nodes

    Maximum Number of Concurrent Non-Modification API Calls

    max-requests-inflight

    Maximum number of concurrent non-mutating requests. When the value of this parameter is exceeded, the server rejects requests.

    The value 0 indicates that there is no limitation on the maximum number of concurrent non-modification requests. This parameter is related to the cluster scale. You are advised not to change the value.

    Manual configuration is no longer supported since cluster v1.21. The value is automatically specified based on the cluster scale.

    • 400 for clusters with 50 or 200 nodes
    • 1000 for clusters with 1000 nodes
    • 2000 for clusters with 2000 nodes

    NodePort port range

    service-node-port-range

    NodePort port range. After changing the value, go to the security group page and change the TCP/UDP port range of node security groups 30000 to 32767. Otherwise, ports other than the default port cannot be accessed externally.

    If the port number is smaller than 20106, a conflict may occur between the port and the CCE health check port, which may further lead to unavailable cluster. If the port number is greater than 32767, a conflict may occur between the port and the ports in net.ipv4.ip_local_port_range, which may further affect the network performance.

    Default: 30000 to 32767

    Value range:

    Min > 20105

    Max < 32768

    Request Timeout

    request-timeout

    Default request timeout interval of kube-apiserver. Exercise caution when changing the value of this parameter. Ensure that the changed value is proper to prevent frequent API timeout or other errors.

    This parameter is available only in clusters of v1.19.16-r30, v1.21.10-r10, v1.23.8-r10, v1.25.3-r10, or later versions.

    Default: 1m0s

    Value range:

    Min ≥ 1s

    Max ≤ 1 hour

    ServerSideApply

    feature-gates: ServerSideApply

    Whether to enable ServerSideApply of kube-apiserver. For details, see Server-Side Apply. If this function is enabled, the system stores the resource field management information in metadata.managedFields to record the subject, time, and fields of historical operations.

    This parameter is available only in clusters of v1.19.16-r30 or later patch versions, v1.21.10-r10 or later patch versions, v1.23.8-r10 or later patch versions, and v1.25.3-r10 or later patch versions. This feature is enabled by default for clusters v1.27 or later and cannot be disabled.

    Default: true

    Overload Control

    support-overload

    Cluster overload control. If enabled, concurrent requests are dynamically controlled based on the resource pressure of master nodes to keep them and the cluster available.

    This parameter is available only in clusters of v1.23 or later.

    • false: Overload control is disabled.
    • true: Overload control is enabled.
    Table 2 Scheduler configurations

    Item

    Parameter

    Description

    Value

    Qps for communicating with kube-apiserver

    kube-api-qps

    QPS for communicating with kube-apiserver.

    • If the number of nodes in a cluster is less than 1000, the default value is 100.
    • If a cluster contains 1000 or more nodes, the default value is 200.

    Burst for communicating with kube-apiserver

    kube-api-burst

    Burst for communicating with kube-apiserver.

    • If the number of nodes in a cluster is less than 1000, the default value is 100.
    • If a cluster contains 1000 or more nodes, the default value is 200.

    Whether to enable GPU sharing

    enable-gpu-share

    Whether to enable GPU sharing. This parameter is supported only by clusters of v1.23.7-r10, v1.25.3-r0, and later.

    • When disabled, ensure that pods in the cluster do not use the shared GPU (that is, the annotation of cce.io/gpu-decision does not exist in pods).
    • When enabled, ensure that the annotation of cce.io/gpu-decision exists in pods that use GPU resources in the cluster.

    Default: true

    Table 3 kube-controller-manager configurations

    Item

    Parameter

    Description

    Value

    Number of concurrent processing of deployment

    concurrent-deployment-syncs

    Number of deployment objects that are allowed to sync concurrently

    Default: 5

    Concurrent processing number of endpoint

    concurrent-endpoint-syncs

    Number of endpoint syncing operations that will be done concurrently

    Default: 5

    Concurrent number of garbage collector

    concurrent-gc-syncs

    Number of garbage collector workers that are allowed to sync concurrently

    Default: 20

    Number of job objects allowed to sync simultaneously

    concurrent-job-syncs

    Number of job objects that are allowed to sync concurrently

    Default: 5

    Number of CronJob objects allowed to sync simultaneously

    concurrent-cron-job-syncs

    Number of scheduled jobs that can be synchronized concurrently.

    Default: 5

    Number of concurrent processing of namespace

    concurrent-namespace-syncs

    Number of namespace objects that are allowed to sync concurrently

    Default: 10

    Concurrent processing number of replicaset

    concurrent-replicaset-syncs

    Number of replica sets that are allowed to sync concurrently

    Default: 5

    ResourceQuota

    concurrent-resource-quota-syncs

    Number of resource quotas that are allowed to sync concurrently

    Default: 5

    Concurrent processing number of service

    concurrent-service-syncs

    Number of services that are allowed to sync concurrently

    Default: 10

    Concurrent processing number of serviceaccount-token

    concurrent-serviceaccount-token-syncs

    Number of service account token objects that are allowed to sync concurrently

    Default: 5

    Concurrent processing of ttl-after-finished

    concurrent-ttl-after-finished-syncs

    Number of ttl-after-finished-controller workers that are allowed to sync concurrently

    Default: 5

    RC

    concurrent-rc-syncs

    Number of replication controllers that are allowed to sync concurrently

    NOTE:

    This parameter is used only in clusters of v1.21 to v1.23. In clusters of v1.25 and later, this parameter is deprecated (officially deprecated from v1.25.3-r0 on).

    Default: 5

    HPA

    concurrent-horizontal-pod-autoscaler-syncs

    Number of HPA auto scaling requests that can be concurrently processed.

    Default 1 for clusters earlier than v1.27 and 5 for clusters earlier than v1.27

    Value range: 1 to 50

    Cluster elastic computing period

    horizontal-pod-autoscaler-sync-period

    How often HPA audits metrics in a cluster.

    Default: 15 seconds

    Qps for communicating with kube-apiserver

    kube-api-qps

    QPS for communicating with kube-apiserver

    • If the number of nodes in a cluster is less than 1000, the default value is 100.
    • If a cluster contains 1000 or more nodes, the default value is 200.

    Burst for communicating with kube-apiserver

    kube-api-burst

    Burst for communicating with kube-apiserver.

    • If the number of nodes in a cluster is less than 1000, the default value is 100.
    • If a cluster contains 1000 or more nodes, the default value is 200.

    The maximum number of terminated pods that can be kept before the Pod GC deletes the terminated pod

    terminated-pod-gc-threshold

    Number of terminated pods that can exist in a cluster. If there are more terminated pods than the expected number in the cluster, the terminated pods that exceed the number will be deleted.

    NOTE:

    If this parameter is set to 0, all pods in the terminated state are retained.

    Default: 1000

    Value range: 10 to 12500

    If the cluster version is v1.21.11-r40, v1.23.8-r0, v1.27.3-r0, v1.25.6-r0, or later, the value range is changed to 0 to 100000.

    Table 4 Extended controller configurations (supported only by clusters of v1.21 and later)

    Item

    Parameter

    Description

    Value

    Enable resource quota management

    enable-resource-quota

    Indicates whether to automatically create a ResourceQuota when creating a namespace. With quota management, you can control the number of workloads of each type and the upper limits of resources in a namespace or related dimensions.

    • false: Auto creation is disabled.
    • true: Auto creation is enabled. For details about the resource quota defaults, see Configuring Resource Quotas.
      NOTE:

      In high-concurrency scenarios (for example, creating pods in batches), the resource quota management may cause some requests to fail due to conflicts. Do not enable this function unless necessary. To enable this function, ensure that there is a retry mechanism in the request client.

    Default: false

  4. Click OK.