更新时间:2024-08-17 GMT+08:00

修改CCE集群配置

操作场景

CCE支持对集群配置参数进行管理,通过该功能您可以对核心组件进行深度配置。

操作步骤

  1. 登录CCE控制台,在左侧导航栏中选择“集群管理”
  2. 找到目标集群,查看集群的更多操作,并选择“配置管理”。

    图1 配置管理

  3. 在侧边栏滑出的“配置管理”窗口中,根据业务需求修改Kubernetes的参数值:

    表1 集群服务器配置(kube-apiserver

    名称

    参数

    详情

    取值

    容器迁移对节点不可用状态的容忍时间

    default-not-ready-toleration-seconds

    容器迁移对节点不可用状态的容忍时间,默认对所有的容器生效,用户也可以为指定Pod进行差异化容忍配置,此时将以Pod配置的容忍时长为准,详情请参见设置容忍策略

    如果容忍时间配置过小,在网络抖动等短时故障场景下,容器可能会频繁迁移而影响业务;如果容忍时间配置过大,在节点故障时,容器可能长时间无法迁移,导致业务受损。

    默认:300s

    容器迁移对节点无法访问状态的容忍时间

    default-unreachable-toleration-seconds

    容器迁移对节点无法访问状态的容忍时间,默认对所有的容器生效,用户也可以为指定Pod进行差异化容忍配置,此时将以Pod配置的容忍时长为准,详情请参见设置容忍策略

    如果容忍时间配置过小,在网络抖动等短时故障场景下,容器可能会频繁迁移而影响业务;如果容忍时间配置过大,在节点故障时,容器可能长时间无法迁移,导致业务受损。

    默认:300s

    修改类API请求最大并发数

    max-mutating-requests-inflight

    最大mutating并发请求数。 当服务器超过此值时,它会拒绝请求。

    0表示无限制。该参数与集群规模相关,不建议修改。

    从v1.21版本开始不再支持手动配置,根据集群规格自动配置如下:

    • 50和200节点:200
    • 1000节点:500
    • 2000节点:1000

    非修改类API请求最大并发数

    max-requests-inflight

    最大non-mutating并发请求数。 当服务器超过此值时,它会拒绝请求。

    0表示无限制。该参数与集群规模相关,不建议修改。

    从v1.21版本开始不再支持手动配置,根据集群规格自动配置如下:

    • 50和200节点:400
    • 1000节点:1000
    • 2000节点:2000

    Nodeport类型服务端口范围

    service-node-port-range

    NodePort端口范围,修改后需前往安全组页面同步修改节点安全组30000-32767的TCP/UDP端口范围,否则除默认端口外的其他端口将无法被外部访问。

    端口号小于20106会和CCE组件的健康检查端口冲突,引发集群不可用;端口号高于32767会和net.ipv4.ip_local_port_range范围冲突,影响性能。

    默认:30000-32767

    取值范围:

    min>20105

    max<32768

    开启过载防护

    support-overload

    集群过载控制开关,开启后将根据控制节点的资源压力,动态调整请求并发量,维护控制节点和集群的可靠性。

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

    • false:不启用过载控制
    • true:启用过载控制

    节点限制插件

    enable-admission-plugin-node-restriction

    节点限制插件限制了节点的kubelet只能操作当前节点的对象,增强了在高安全要求或多租户场景下的隔离性。

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

    默认:开启

    Pod节点选择器插件

    enable-admission-plugin-pod-node-selector

    Pod节点选择器插件允许集群管理员通过命名空间注释设置默认节点选择器,帮助约束Pod可以运行的节点,并简化配置。

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

    默认:开启

    Pod容忍度限制插件

    enable-admission-plugin-pod-toleration-restriction

    Pod容忍度限制插件允许通过命名空间设置Pod的容忍度的默认值和限制,为集群管理者提供了对Pod调度的精细控制,以保护关键资源。

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

    默认:关闭

    API受众

    api-audiences

    为ServiceAccount令牌定义其受众。Kubernetes 用于服务账户令牌的身份验证组件,会验证API请求中使用的令牌是否指定了合法的受众。

    配置建议:根据集群服务间通信的需求,精确配置受众列表。此举确保服务账户令牌仅在授权的服务间进行认证使用,提升安全性。

    说明:

    不正确的配置可能导致服务间认证通信失败,或令牌的验证过程出现错误。

    v1.23.16-r0、v1.25.11-r0、v1.27.8-r0、v1.28.6-r0、v1.29.2-r0及以上版本的集群支持该参数。

    默认值:"https://kubernetes.default.svc.cluster.local"

    支持配置多个值,用英文逗号隔开。

    服务账户令牌发行者

    service-account-issuer

    指定发行服务账户令牌的实体标识符。这是在服务账户令牌的负载(Payload)中的 'iss' 字段所标识的值。

    配置建议:请确保所配置的发行者(Issuer)URL在集群内部可被访问,并且可被集群内部的认证系统所信任。

    说明:

    若设置了一个不可信或无法访问的发行者 URL,可能会导致基于服务账户的认证流程失败。

    v1.23.16-r0、v1.25.11-r0、v1.27.8-r0、v1.28.6-r0、v1.29.2-r0及以上版本的集群支持该参数。

    默认值:"https://kubernetes.default.svc.cluster.local"

    支持配置多个值,用英文逗号隔开。

    表2 调度器配置

    名称

    参数

    详情

    取值

    默认调度器

    default-scheduler

    • kube-scheduler调度器:提供社区原生调度器标准调度能力。
    • volcano调度器:兼容kube-scheduler调度能力,并提供增量调度能力。详情请参见Volcano调度

    默认:kube-scheduler调度器

    调度器访问kube-apiserver的QPS

    kube-api-qps

    与kube-apiserver通信的QPS

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

    调度器访问kube-apiserver的突发流量上限

    kube-api-burst

    与kube-apiserver通信的burst

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

    开启GPU共享

    enable-gpu-share

    是否开启GPU共享,该参数仅v1.23.7-r10、v1.25.3-r0及以上版本集群支持。

    • 关闭GPU共享时,需保证集群中的Pod没有使用共享GPU能力(即Pod不存在cce.io/gpu-decision的annotation),并需保证关闭GPU虚拟化功能。
    • 开启GPU共享时,需保证集群中已使用GPU资源的Pod均存在cce.io/gpu-decision的annotation。

    默认:开启

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

    名称

    参数

    详情

    取值

    Deployment

    concurrent-deployment-syncs

    Deployment的并发处理数

    默认:5

    Endpoint

    concurrent-endpoint-syncs

    Endpoint的并发处理数

    默认:5

    GC回收

    concurrent-gc-syncs

    Garbage Collector的并发数

    默认:20

    Job

    concurrent-job-syncs

    允许同时同步的作业对象的数量。

    默认:5

    CronJob

    concurrent-cron-job-syncs

    允许同时同步的定时任务对象的数量。

    默认:5

    Namespace

    concurrent-namespace-syncs

    Namespace的并发处理数

    默认:10

    ReplicaSet

    concurrent-replicaset-syncs

    ReplicaSet的并发处理数

    默认:5

    ResourceQuota

    concurrent-resource-quota-syncs

    Resource Quota的并发处理数

    默认:5

    Servicepace

    concurrent-service-syncs

    Service的并发处理数

    默认:10

    ServiceAccountToken

    concurrent-serviceaccount-token-syncs

    ServiceAccount Token的并发处理数

    默认:5

    TTLAfterFinished

    concurrent-ttl-after-finished-syncs

    ttl-after-finished的并发处理数

    默认:5

    RC

    concurrent_rc_syncs(v1.19及以下版本集群中使用)

    concurrent-rc-syncs(v1.21至v1.25.3-r0版本集群中使用)

    RC的并发处理数

    说明:

    v1.25.3-r0及以上版本中该参数弃用。

    默认:5

    Pod水平伸缩同步的周期

    horizontal-pod-autoscaler-sync-period

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

    说明:

    请合理设置该参数,周期配置过长可能导致控制器处理响应慢;周期配置过短则会对集群管控面造成压力,产生过载风险。

    默认:15s

    Pod水平伸缩容忍度

    horizontal-pod-autoscaler-tolerance

    该配置影响控制器对伸缩策略相关指标反映的灵敏程度,当配置为0时,指标达到策略阈值时立即触发弹性。

    配置建议:如业务资源占用随时间的“突刺”特征明显,建议保留一定的容忍度值,避免因业务短时资源占用飚高导致预期之外的弹性行为。

    默认:0.1

    HPA CPU初始化期间

    horizontal-pod-autoscaler-cpu-initialization-period

    这一时段定义了纳入HPA计算的CPU使用数据仅来源于已经达到就绪状态并完成了最近一次指标采集的Pods。它的目的是在Pod启动初期过滤掉不稳定的CPU使用数据,进而防止基于瞬时峰值做出错误的扩缩容决策。

    配置建议:如果您观察到Pods在启动阶段的CPU使用率波动导致HPA作出错误的扩展决策,增大此值可以提供一个CPU使用率稳定化的缓冲期。

    说明:

    请合理设置该参数,设置值过低可能导致基于CPU峰值做出过度反应的扩容;而设置得过高则可能在实际需要扩容时造成延迟反应。

    v1.23.16-r0、v1.25.11-r0、v1.27.8-r0、v1.28.6-r0、v1.29.2-r0及以上版本的集群支持该参数。

    默认:5分钟

    HPA 初始就绪状态延迟

    horizontal-pod-autoscaler-initial-readiness-delay

    在CPU初始化期之后,此时间段允许HPA以一个较宽松的标准筛选CPU度量数据。也就是说,这段时间内,即使Pods的就绪状态有所变化,HPA也会考虑它们的CPU使用数据进行扩缩容。这有助于在Pod状态频繁变化时,确保CPU使用数据被持续追踪。

    配置建议:如果Pods在启动后的就绪状态发生波动,并且您需要避免此波动导致HPA的误判,适当增加此值可以使HPA得到更全面的CPU使用数据。

    说明:

    请合理设置该参数,值设置过低可能会在Pod刚进入就绪状态时,因CPU数据波动导致不恰当的扩容行为;而设置过高则可能导致在需要快速反应时HPA无法立即做出决策。

    v1.23.16-r0、v1.25.11-r0、v1.27.8-r0、v1.28.6-r0、v1.29.2-r0及以上版本的集群支持该参数。

    默认:30s

    控制器访问kube-apiserver的QPS

    kube-api-qps

    与kube-apiserver通信的qps

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

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

    kube-api-burst

    与kube-apiserver通信的burst

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

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

    terminated-pod-gc-threshold

    集群中可保留的终止状态Pod数量,终止状态Pod超出该数量时将会被删除。

    说明:

    该参数设置为0时,表示保留所有终止状态的Pod。

    默认:1000

    取值范围为10-12500

    集群版本为v1.21.11-r40、v1.23.8-r0、v1.25.6-r0、v1.27.3-r0及以上时,取值范围调整为0-100000

    可用区亚健康阈值

    unhealthy-zone-threshold

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

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

    说明:

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

    默认:0.55

    取值范围为0-1

    节点迁移速率

    node-eviction-rate

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

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

    说明:

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

    默认:0.1

    次级节点迁移速率

    secondary-node-eviction-rate

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

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

    说明:

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

    默认:0.01

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

    大规模集群大小阈值

    large-cluster-size-threshold

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

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

    说明:

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

    默认:50

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

    表4 网络组件配置(仅CCE Turbo集群支持)

    名称

    参数

    详情

    取值

    集群级别的节点最少绑定容器网卡数

    nic-minimum-target

    保障节点最少有多少张容器网卡绑定在节点上。

    参数值需为正整数。例如10,表示节点最少有10张容器网卡绑定在节点上。当超过节点的容器网卡配额时,后台取值为节点的容器网卡配额。

    默认:10

    集群级别的节点预热容器网卡上限检查值

    nic-maximum-target

    当节点绑定的容器网卡数超过节点预热容器网卡上限检查值(nic-maximum-target),不再主动预热容器网卡。

    当该参数大于等于节点最少绑定容器网卡数(nic-minimum-target)时,则开启预热容器网卡上限值检查;反之,则关闭预热容器网卡上限值检查。

    参数值需为正整数。例如0,表示关闭预热容器网卡上限值检查。当超过节点的容器网卡配额时,后台取值为节点的容器网卡配额。

    默认:0

    集群级别的节点动态预热容器网卡数

    nic-warm-target

    当Pod使用完节点最少绑定容器网卡数(nic-minimum-target)后,会始终额外预热多少张容器网卡,只支持数值配置。

    当 节点动态预热容器网卡数(nic-warm-target) + 节点当前绑定的容器网卡数 大于 节点预热容器网卡上限检查值(nic-maximum-target) 时,只会预热nic-maximum-target与节点当前绑定的容器网卡数的差值。

    默认:2

    集群级别的节点预热容器网卡回收阈值

    nic-max-above-warm-target

    只有当 节点上空闲的容器网卡数 - 节点动态预热容器网卡数(nic-warm-target) 大于此阈值 时,才会触发预热容器网卡的解绑回收。只支持数值配置。

    • 调大此值会减慢空闲容器网卡的回收,加快Pod的启动速度,但会降低IP地址的利用率,特别是在IP地址紧张的场景,请谨慎调大
    • 调小此值会加快空闲容器网卡的回收,提高IP地址的利用率,但在瞬时大量Pod激增的场景,部分Pod启动会稍微变慢。

    默认:2

    集群级别的节点绑定容器网卡数低水位

    prebound-subeni-percentage

    节点绑定容器网卡数高水位

    说明:

    此参数配置废弃中,请采用其他4个容器网卡动态预热参数。

    默认:0:0

    表5 网络组件配置(仅VPC网络模型的集群支持)

    名称

    参数

    详情

    取值

    保留原有Pod IP的非伪装网段

    nonMasqueradeCIDRs

    在VPC网络集群中,集群内的容器如果想要访问集群外,则需要将源容器IP进行SNAT,转换为节点IP(伪装成节点与外部通信)。配置后,节点默认不会将该网段IP进行SNAT,即不进行这种伪装。v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上版本支持该配置。

    集群中的节点默认不会将目的IP为10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 三个网段的报文进行SNAT,因为这三个网段CCE默认为私有网段,可以借由上层VPC直接将报文送达(即将这三个网段视为集群内的网络,默认三层可达)。

    默认:10.0.0.0/8,172.16.0.0/12,192.168.0.0/16

    说明:

    如果需要保证节点能正常访问跨节点的Pod,必须添加节点的子网网段。

    同理,如果同VPC下的其他ECS节点需要能正常访问Pod IP,必须添加ECS所在子网网段。

    表6 扩展控制器配置(仅v1.21及以上版本集群支持)

    名称

    参数

    详情

    取值

    启用资源配额管理

    enable-resource-quota

    创建Namespace时是否自动创建ResourceQuota对象。通过配额管理功能,用户可以对命名空间或相关维度下的各类负载数量以及资源上限进行控制。

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

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

    默认:关闭

  4. 单击“确定”,完成配置操作。