云容器引擎 CCE-Kubernetes原生配置:集群控制器配置(kube-controller-manager)

时间:2024-05-17 11:30:01

集群控制器配置(kube-controller-manager)

控制器公共配置

  • 控制器性能配置:用于设置控制器访问kube-api-server的性能参数配置。

    请合理设置控制器性能配置,否则可能出现以下问题:

    • 配置过小:可能会触发客户端限流,对控制器性能产生影响。
    • 配置过大:可能会导致kube-apiserver过载。
    表3 控制器性能配置参数说明

    名称

    参数

    说明

    取值

    控制器访问kube-apiserver的QPS

    kube-api-qps

    与kube-apiserver通信的QPS,即每秒查询率。

    • 集群规格为1000节点以下时,默认值为100
    • 集群规格为1000节点及以上时,默认值为200

    控制器访问kube-apiserver的突发流量上限

    kube-api-burst

    与kube-apiserver通信的突发流量上限。

    • 集群规格为1000节点以下时,默认值为100
    • 集群规格为1000节点及以上时,默认值为200
  • 资源对象处理并发配置:允许同时同步的资源对象的数量。配置数量越大,管理响应越快,但 CPU(和网络)负载也越高。

    请合理设置资源对象处理并发配置,否则可能出现以下问题:

    • 配置过小:可能导致管理器处理响应慢。
    • 配置过大:会对集群管控面造成压力,产生过载风险。
    表4 资源对象处理并发配置参数说明

    名称

    参数

    说明

    取值

    Deployment

    concurrent-deployment-syncs

    可以并发同步的Deployment对象个数。数值越大意味着对Deployment的响应越及时,同时也意味着更大的CPU(和网络带宽)压力。

    默认:5

    Endpoint

    concurrent-endpoint-syncs

    可以并发同步的Endpoints对象个数。数值越大意味着更新Endpoints越快,同时也意味着更大的CPU(和网络)压力。

    默认:5

    GC回收

    concurrent-gc-syncs

    可以并发同步的垃圾收集(Garbage Collector)工作线程个数。

    默认:20

    Job

    concurrent-job-syncs

    可以并发同步的Job对象个数。较大的数值意味着对Job的响应越及时,不过也意味着更多的CPU(和网络)占用。

    默认:5

    CronJob

    concurrent-cron-job-syncs

    可以并发同步的CronJob对象个数。较大的数值意味着对CronJob的响应越及时,不过也意味着更多的CPU(和网络)占用。

    默认:5

    Namespace

    concurrent-namespace-syncs

    可以并发同步的Namespace对象个数。较大的数值意味着对Namespace的响应越及时,不过也意味着更多的CPU(和网络)占用。

    默认:10

    Replicaset

    concurrent-replicaset-syncs

    可以并发同步的ReplicaSet个数。数值越大,副本管理的响应速度越快,同时也意味着更多的CPU(和网络)占用。

    默认:5

    ResourceQuota

    concurrent-resource-quota-syncs

    可以并发同步的ResourceQuota对象个数。数值越大,配额管理的响应速度越快,不过对CPU(和网络)的占用也越高。

    默认:5

    Service

    concurrent-service-syncs

    可以并发同步的Service对象个数。数值越大,服务管理的响应速度越快,不过对CPU(和网络)的占用也越高。

    默认:10

    ServiceAccountToken

    concurrent-serviceaccount-token-syncs

    可以并发同步的服务账号令牌对象个数。数值越大,令牌生成的速度越快,不过对CPU(和网络)的占用也越高。

    默认:5

    TTLAfterFinished

    concurrent-ttl-after-finished-syncs

    可以并发同步的ttl-after-finished-controller线程个数。

    默认:5

    RC

    concurrent_rc_syncs

    可以并发同步的副本控制器对象个数。数值越大,副本管理操作越快,不过对CPU(和网络)的占用也越高。

    说明:

    该参数仅在v1.19及以下版本集群中使用。

    默认:5

    RC

    concurrent-rc-syncs

    可以并发同步的副本控制器对象个数。数值越大,副本管理操作越快,不过对CPU(和网络)的占用也越高。

    说明:

    该参数仅在v1.21至v1.23版本集群中使用。v1.25版本后,该参数弃用(正式弃用版本为v1.25.3-r0)。

    默认:5

    HPA并发处理数

    concurrent-horizontal-pod-autoscaler-syncs

    允许并发执行的HPA弹性伸缩数量。 数值越大,HPA弹性伸缩响应越快,不过对CPU(和网络)的占用也越高。

    该参数仅v1.27及以上版本集群支持。

    默认:5

    取值范围为1-50

节点生命周期控制器(node-lifecycle-controller)配置

v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上版本的集群支持该参数。

表5 负载弹性伸缩控制器配置参数说明

名称

参数

说明

取值

可用区亚健康阈值

unhealthy-zone-threshold

当可用区故障节点规模达到指定比例时被认定为不健康,针对不健康的区域,故障节点业务的迁移频率会降级,避免规模故障场景下大规模迁移操作产生更坏的影响。

说明:

比例配置过大可能导致区域在规模故障场景下仍尝试执行大规模迁移动作,导致集群过载等风险。

默认:0.55

节点迁移速率

node-eviction-rate

当某区域健康时,在节点故障的情况下每秒删除Pod的节点数。该值默认设置为0.1,代表每10秒钟内至多从一个节点驱逐Pod。

说明:

结合集群规模合理设置,建议按比例折算后每批迁移Pod数量不超过300。

迁移速率设置过大可能引入集群过载风险,同时每批迁移重调度的Pod过多,大量Pod无法及时调度,影响整体故障恢复时间。

默认:0.1

次级节点迁移速率

secondary-node-eviction-rate

当某区域不健康时,在节点故障的情况下每秒删除Pod的节点数。该值默认设置为0.01,代表每100秒钟内至多从一个节点驱逐Pod。

说明:

配合node-eviction-rate设置,一般建议设置为node-eviction-rate的十分之一。

区域亚健康场景迁移速率设置过大无实际意义,且可能引入集群过载风险。

默认:0.01

大规模集群大小阈值

large-cluster-size-threshold

集群内节点数量大于此参数时,集群被判断为大规模集群。

说明:

在拥有大量节点的集群中,适当增加此阈值可以帮助提高控制器的性能和响应速度。对于规模较小的集群,保持默认值即可。在调整此参数时,建议先在测试环境中验证其对性能的影响,然后再在生产环境中应用。

被视为大型集群时,kube-controller-manager 会进行特定配置调整。这些配置用来优化大规模集群性能。因此阈值如果过低,规模小的集群用上的大集群的配置,反而降低性能。

默认:50

负载弹性伸缩控制器(horizontal-pod-autoscaler-controller)配置

请合理设置负载弹性伸缩控制器配置,否则可能出现以下问题:

  • 配置过小:可能导致控制器处理响应慢。
  • 配置过大:会对集群管控面造成压力,产生过载风险。
表6 负载弹性伸缩控制器配置参数说明

名称

参数

说明

取值

Pod水平伸缩同步的周期

horizontal-pod-autoscaler-sync-period

水平Pod扩缩器对Pod进行弹性伸缩的周期。配置越小弹性伸缩器反应越及时,同时CPU负载也越高。

默认:15s

Pod回收控制器(pod-garbage-collector-controller)配置

表7 Pod回收控制器配置参数说明

名称

参数

说明

取值

终止状态Pod触发回收的数量阈值

terminated-pod-gc-threshold

在Pod GC开始删除终止状态(terminated)的Pod之前,系统允许存在终止状态的Pod数量。

说明:

请合理设置该参数,配置过大时,集群中可能存在大量终止状态的Pod,影响相关List查询请求性能,产生集群过载风险。

默认:1000

取值范围为10-12500

资源配额控制器(resource-quota-controller)配置

在高并发场景下(如批量创建Pod),配额管理机制可能导致部分请求因冲突而失败,除非必要不建议启用该功能。如启用,请确保请求客户端具备重试机制。

表8 资源配额控制器配置参数说明

名称

参数

说明

取值

启用资源配额管理

enable-resource-quota

通过配额管理功能,用户可以对命名空间或相关维度下的各类负载(Deployment、Pod等)数量以及资源(CPU、Memory)上限进行控制。命名空间通过ResourceQuota对象进行配额限制。

  • 关闭(false):不自动创建ResourceQuota对象。
  • 开启(true):自动创建ResourceQuota对象。ResourceQuota的默认取值请参见设置资源配额及限制

默认:关闭(false)

support.huaweicloud.com/usermanual-cce/cce_10_0787.html