修改CCE集群配置
集群配置参数是分布式系统中用于定义节点行为、资源分配、通信规则、扩展策略等的底层规则集,会影响集群的性能、稳定性、扩展性和容错能力。通过调整CCE集群的配置参数,您可以对核心组件进行深度配置。集群配置参数主要分为以下几类,您可以根据需求进行调整。
类别 |
说明 |
---|---|
主要用于控制集群的资源调度、请求管理、安全性和功能开关,确保集群能够高效运行,合理分配资源。 修改kube-apiserver的参数会导致集群重启并断开已有长连接,请根据您的业务需求谨慎操作。 |
|
主要用于管理和优化集群中的资源调度、请求控制以及GPU资源的分配。您可以根据集群负载和资源需求动态调整调度策略,确保集群的高效运行和资源的最大化利用。 |
|
主要用于控制集群中不同控制器的行为和同步频率,优化集群资源管理和任务调度。 |
|
主要用于控制和优化集群中网络资源的管理,特别是在高负载和大规模集群中,确保网络的高效运行和资源的合理分配。 |
|
主要用于指定无需进行源地址转换(SNAT)的IP地址范围,可以避免不必要的SNAT,优化网络性能。 |
|
主要用于限制命名空间内的资源使用,确保资源分配的公平性和合理性。 |
修改集群配置参数的操作指导
您可以通过API接口修改CCE集群配置参数,详情请参见API参考文档。关于如何调用接口,请参见构造请求。
PUT /api/v3/projects/{project_id}/clusters/{cluster_id}/nodepools/master/configuration
参数 |
描述 |
---|---|
project_id |
项目ID,获取方式请参见如何获取接口URI中参数。 |
cluster_id |
集群ID,获取方式请参见如何获取接口URI中参数。 |
请求体示例如下:
{ "kind" : "Configuration", "apiVersion" : "v3", "metadata" : { "name" : "configuration" }, "spec" : { "packages" : [ { "name" : "kube-apiserver", "configurations" : [ { "name" : "default-not-ready-toleration-seconds", "value" : 300 }, { "name" : "default-unreachable-toleration-seconds", "value" : 300 } ] } ] } }
以上示例中,修改集群服务器配置(kube-apiserver)参数如下:
- 容器迁移对节点不可用状态的容忍时间(default-not-ready-toleration-seconds):设置为300。
- 容器迁移对节点无法访问状态的容忍时间(default-not-ready-toleration-seconds):设置为300。
集群配置参数说明
名称 |
参数 |
详情 |
取值 |
配置方式 |
---|---|---|---|---|
容器迁移对节点不可用状态的容忍时间 |
default-not-ready-toleration-seconds |
表示节点处于不可用状态时,容器在被自动驱逐前可以继续运行的容忍时间,默认对所有的容器生效。CCE集群支持为不同Pod配置独立的容忍策略,实现精细化管控,详情请参见设置容忍策略。 配置建议:无特殊需求建议保持默认配置。 配置风险:如果容忍时间配置过小,在网络抖动等短时故障场景下,容器可能会频繁迁移而影响业务;如果容忍时间配置过大,在节点故障时,容器可能长时间无法迁移,导致业务受损。 |
默认:300s |
控制台/API |
容器迁移对节点无法访问状态的容忍时间 |
default-unreachable-toleration-seconds |
表示节点无法访问时,容器在被自动驱逐前可以继续运行的容忍时间,默认对所有的容器生效。CCE集群支持为不同Pod配置独立的容忍策略,实现精细化管控,详情请参见设置容忍策略。 配置建议:无特殊需求建议保持默认配置。 配置风险:如果容忍时间配置过小,在网络抖动等短时故障场景下,容器可能会频繁迁移而影响业务;如果容忍时间配置过大,在节点故障时,容器可能长时间无法迁移,导致业务受损。 |
默认:300s |
控制台/API |
修改类API请求最大并发数 |
max-mutating-requests-inflight |
表示最大mutating并发请求数。 当并发请求数超过此值时,请求将会被拒绝。其中,0表示无限制。 配置建议:建议保持默认值。 配置风险:上调该参数可能会导致过载风险。 |
从v1.21版本开始不再支持手动配置,根据集群规格自动配置如下:
|
控制台/API |
非修改类API请求最大并发数 |
max-requests-inflight |
最大non-mutating并发请求数。 当并发请求数超过此值时,请求将会被拒绝。其中,0表示无限制。 配置建议:建议保持默认值。 配置风险:上调该参数可能会导致过载风险。 |
从v1.21版本开始不再支持手动配置,根据集群规格自动配置如下:
|
控制台/API |
Nodeport类型服务端口范围 |
service-node-port-range |
表示NodePort类型Service可使用的节点端口范围,修改后请前往安全组页面同步修改节点安全组30000-32767的TCP/UDP端口范围,否则除默认端口外的其他端口将无法被外部访问。 配置建议:建议保持默认值。 配置风险:端口号小于20106会和CCE组件的健康检查端口冲突,引发集群不可用;端口号高于32767会和net.ipv4.ip_local_port_range范围冲突,影响性能。 |
默认:30000-32767 取值范围: min>20105 max<32768 |
控制台/API |
请求超时时间 |
request-timeout |
表示kube-apiserver组件的请求超时时间。 配置建议:建议保持默认值,避免频繁出现接口超时或其他异常。 适用集群版本:该参数仅v1.19.16-r30、v1.21.10-r10、v1.23.8-r10、v1.25.3-r10及以上版本集群支持。 |
默认:1m0s 取值范围: min>=1s max<=1h |
控制台/API |
修改在服务端生效 |
feature-gates: ServerSideApply |
表示kube-apiserver组件的ServerSideApply特性开关,详情请参见服务器端应用(Server-Side Apply)。功能启用时,系统会将资源的字段管理信息存储在metadata.managedFields字段中,以记录历史操作的主体、时间、字段等信息。 适用集群版本:该参数仅v1.19.16-r30、v1.21.10-r10、v1.23.8-r10、v1.25.3-r10及以上版本集群支持。v1.27及以上版本集群此特性默认开启,不支持关闭。 |
默认:开启 |
控制台/API |
开启过载防护 |
support-overload |
表示集群过载控制开关,开启后将根据控制节点的资源压力,动态调整请求并发量,维护控制节点和集群的可靠性。 配置建议:建议开启。开启过载防护功能不意味着绝对不会过载,极端场景如短时内请求量急剧冲高超出过载调整反应速度时,仍可能有过载现象出现,建议您针对集群访问行为进行主动管控,避免此类极端场景。 适用集群版本:该参数仅v1.23及以上版本集群支持。 |
|
控制台/API |
节点限制插件 |
enable-admission-plugin-node-restriction |
限制kubelet只能修改自身节点相关的Pod,防止越权操作,从而增强高安全要求或多租户场景下的隔离性。 适用集群版本:v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上版本的集群支持该参数。 |
默认:开启 |
控制台/API |
Pod节点选择器插件 |
enable-admission-plugin-pod-node-selector |
该参数允许集群管理员通过命名空间注释设置默认节点选择器,帮助约束Pod可以运行的节点,并简化配置。 适用集群版本:v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上版本的集群支持该参数。 |
默认:开启 |
控制台/API |
Pod容忍度限制插件 |
enable-admission-plugin-pod-toleration-restriction |
该参数允许通过命名空间设置Pod的容忍度的默认值和限制,为集群管理者提供了对Pod调度的精细控制,以保护关键资源。 适用集群版本:v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上版本的集群支持该参数。 |
默认:关闭 |
控制台/API |
API受众 |
api-audiences |
在服务账号令牌卷投射特性中,该参数用来为ServiceAccount令牌定义其受众,详细信息请参考官方文档。 配置建议:建议保持默认值。为了确保原有ServiceAccount的认证正常运行,在配置该参数时,建议新增受众,而不是删除已有的受众。 配置风险:删除还在使用中的已有配置,或者将其设置成错误的URL,可能会导致ServiceAccount认证失败。 适用集群版本: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" 支持配置多个值,用英文逗号隔开 |
控制台/API |
服务账户令牌发行者 |
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" 支持配置多个值,用英文逗号隔开 |
控制台/API |
启用OIDC |
oidc-enable |
CCE支持接入OIDC(OpenID Connect)身份认证,您可以配置身份认证所需的信息获取访问令牌并添加到kubectl。详细操作请参见在CCE中使用Dex进行OIDC身份验证。 启用OIDC后,相关配置参数请参见OIDC参数说明。 |
默认:关闭 |
控制台/API |
名称 |
参数 |
详情 |
取值 |
配置方式 |
---|---|---|---|---|
默认调度器 |
default-scheduler |
您可以根据需求选择不同的调度器:
|
默认:kube-scheduler调度器 |
控制台/API |
调度器访问kube-apiserver的QPS |
kube-api-qps |
表示与kube-apiserver通信的QPS。 |
|
控制台/API |
调度器访问kube-apiserver的突发流量上限 |
kube-api-burst |
表示与kube-apiserver通信的burst。 |
|
控制台/API |
开启GPU共享 |
enable-gpu-share |
您可以根据需求选择是否开启GPU共享:
适用集群版本:该参数仅v1.23.7-r10、v1.25.3-r0及以上版本集群支持。 |
默认:开启 |
控制台/API |
名称 |
参数 |
详情 |
取值 |
配置方式 |
---|---|---|---|---|
Deployment |
concurrent-deployment-syncs |
表示Deployment的并发处理数。 |
默认:5 |
控制台/API |
Endpoint |
concurrent-endpoint-syncs |
表示Endpoint的并发处理数。 |
默认:5 |
控制台/API |
GC回收 |
concurrent-gc-syncs |
表示Garbage Collector的并发数。 |
默认:20 |
控制台/API |
Job |
concurrent-job-syncs |
表示允许同时同步的作业对象的数量。 |
默认:5 |
控制台/API |
CronJob |
concurrent-cron-job-syncs |
表示允许同时同步的定时任务对象的数量。 |
默认:5 |
控制台/API |
Namespace |
concurrent-namespace-syncs |
表示Namespace的并发处理数。 |
默认:10 |
控制台/API |
ReplicaSet |
concurrent-replicaset-syncs |
表示ReplicaSet的并发处理数。 |
默认:5 |
控制台/API |
ResourceQuota |
concurrent-resource-quota-syncs |
表示Resource Quota的并发处理数。 |
默认:5 |
控制台/API |
Service |
concurrent-service-syncs |
表示Service的并发处理数。 |
默认:10 |
控制台/API |
ServiceAccountToken |
concurrent-serviceaccount-token-syncs |
表示ServiceAccount Token的并发处理数。 |
默认:5 |
控制台/API |
TTLAfterFinished |
concurrent-ttl-after-finished-syncs |
表示ttl-after-finished的并发处理数。 |
默认:5 |
控制台/API |
RC |
concurrent_rc_syncs(v1.19及以下版本集群中使用) concurrent-rc-syncs(v1.21至v1.25.3-r0版本集群中使用) |
表示RC的并发处理数。 在v1.25.3-r0及以上版本的集群中,该参数已弃用。 |
默认:5 |
控制台/API |
HPA并发处理数 |
concurrent-horizontal-pod-autoscaler-syncs |
表示HPA弹性伸缩并发处理数。 |
v1.27以下版本集群中默认为1,v1.27及以上版本以下集群中默认为5 取值范围为1-50 |
控制台/API |
Pod水平伸缩同步的周期 |
horizontal-pod-autoscaler-sync-period |
表示水平Pod扩缩器对Pod进行弹性伸缩的周期。配置越小弹性伸缩器反应越及时,同时CPU负载也越高。 配置建议:建议保持默认值。 配置风险:周期配置过长可能导致控制器处理响应慢;周期配置过短则会对集群管控面造成压力,产生过载风险。 |
默认:15s |
控制台/API |
Pod水平伸缩容忍度 |
horizontal-pod-autoscaler-tolerance |
该配置影响控制器对伸缩策略相关指标反应的灵敏程度,当配置为0时,指标达到策略阈值时立即触发弹性。 配置建议:请结合业务资源占用行为特点配置。如业务资源占用随时间的“突刺”特征明显,建议保留一定的容忍度值,避免因业务短时资源占用飚高导致预期之外的弹性行为。 |
默认:0.1 |
控制台/API |
HPA CPU初始化期间 |
horizontal-pod-autoscaler-cpu-initialization-period |
表示Pod启动后,HPA等待多长时间才开始采集其CPU使用率数据。它的目的是在Pod启动初期过滤掉不稳定的CPU使用数据,进而防止基于瞬时峰值做出错误的扩缩容决策。 配置建议:如果您观察到Pods在启动阶段的CPU使用率波动导致HPA做出错误的扩展决策,可以适当增加此值。 配置风险:设置值过低可能导致基于CPU峰值做出过度反应的扩容;而设置的过高则可能在实际需要扩容时造成延迟反应。 适用集群版本:v1.23.16-r0、v1.25.11-r0、v1.27.8-r0、v1.28.6-r0、v1.29.2-r0及以上版本的集群支持该参数。 |
默认:5分钟 |
控制台/API |
HPA初始就绪状态延迟 |
horizontal-pod-autoscaler-initial-readiness-delay |
表示在HPA开始基于Pod的就绪状态进行自动扩缩之前,系统的等待时间。 配置建议:如果Pods在启动后的就绪状态发生波动,并且您需要避免此波动导致HPA的误判,可以适当增加此值。 配置风险:参数值设置过低可能会在Pod刚进入就绪状态时,因CPU数据波动导致不恰当的扩容行为;而设置过高则可能导致在需要快速反应时HPA无法立即做出决策。 适用集群版本:v1.23.16-r0、v1.25.11-r0、v1.27.8-r0、v1.28.6-r0、v1.29.2-r0及以上版本的集群支持该参数。 |
默认:30s |
控制台/API |
控制器访问kube-apiserver的QPS |
kube-api-qps |
表示与kube-apiserver通信的qps。 |
|
控制台/API |
控制器访问kube-apiserver的突发流量上限 |
kube-api-burst |
表示与kube-apiserver通信的burst。 |
|
控制台/API |
终止状态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 |
控制台/API |
可用区亚健康阈值 |
unhealthy-zone-threshold |
当给定区域中处于非就绪状态的节点占比高于此值时,会将该区域认定为不健康。针对不健康的区域,故障节点业务的迁移频率会降级,从而避免规模故障场景下大规模迁移操作产生更坏的影响。 配置建议:建议保持默认配置。 配置风险:阈值配置过大可能导致区域在规模故障场景下仍尝试执行大规模迁移动作,导致集群过载等风险。 适用集群版本:v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上版本的集群支持该参数。 |
默认:0.55 取值范围为0-1 |
控制台/API |
节点迁移速率 |
node-eviction-rate |
表示当某区域健康时,在节点故障的情况下每秒最多可以驱逐多少个节点上的Pods。该值默认设置为0.1,代表每10秒钟内至多可以驱逐一个节点的Pods。 配置建议:建议按比例折算后每批迁移Pod数量不超过300。如果迁移速率设置过大可能引入集群过载风险,同时每批迁移重调度的Pod过多,大量Pod无法及时调度,影响整体故障恢复时间。 适用集群版本:v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上版本的集群支持该参数。 |
默认:0.1 |
控制台/API |
次级节点迁移速率 |
secondary-node-eviction-rate |
表示当某区域不健康时,在节点故障的情况下每秒最多可以驱逐多少个节点上的Pods。该值默认设置为0.01,代表每100秒钟内至多从驱逐一个节点的Pods。 配置建议:配合node-eviction-rate设置,一般建议设置为node-eviction-rate的十分之一。 配置风险:区域亚健康场景迁移速率设置过大无实际意义,且可能引入集群过载风险。 使用集群版本:v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上版本的集群支持该参数。 |
默认:0.01 |
控制台/API |
大规模集群大小阈值 |
large-cluster-size-threshold |
用于判断是否属于大规模集群,当集群内节点数量大于此参数时,集群被判断为大规模集群。 配置建议:在拥有大量节点的集群中,适当增加此阈值可以帮助提高控制器的性能和响应速度。对于规模较小的集群,保持默认值即可。在调整此参数时,建议先在测试环境中验证其对性能的影响,后在生产环境中应用。 配置风险:被视为大型集群时,kube-controller-manager会进行特定配置调整,从而优化大规模集群性能。因此,如果阈值过低,规模小的集群用上的大集群的配置,反而降低性能。 适用集群版本:v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上版本的集群支持该参数。 |
默认:50 |
控制台/API |
名称 |
参数 |
详情 |
取值 |
配置方式 |
---|---|---|---|---|
集群级别的节点最少绑定容器网卡数 |
nic-minimum-target |
保障节点最少有多少张容器网卡绑定在节点上。 参数值需为正整数。例如10,表示节点最少有10张容器网卡绑定在节点上。当超过节点的容器网卡配额时,后台取值为节点的容器网卡配额。 |
默认:10 |
控制台/API |
集群级别的节点预热容器网卡上限检查值 |
nic-maximum-target |
当节点绑定的容器网卡数超过节点预热容器网卡上限检查值(nic-maximum-target),不再主动预热容器网卡。 当该参数大于等于节点最少绑定容器网卡数(nic-minimum-target)时,则开启预热容器网卡上限值检查;反之,则关闭预热容器网卡上限值检查。 参数值需为正整数。例如0,表示关闭预热容器网卡上限值检查。当超过节点的容器网卡配额时,后台取值为节点的容器网卡配额。 |
默认:0 |
控制台/API |
集群级别的节点动态预热容器网卡数 |
nic-warm-target |
表示节点网络接口(NIC)预热的目标值,即在节点启动时预先分配的网络接口数量。 当“节点动态预热容器网卡数(nic-warm-target) + 节点当前绑定的容器网卡数”大于节点预热容器网卡上限检查值(nic-maximum-target) 时,系统只会预热nic-maximum-target与节点当前绑定的容器网卡数的差值。 |
默认:2 |
控制台/API |
集群级别的节点预热容器网卡回收阈值 |
nic-max-above-warm-target |
只有当“节点上空闲的容器网卡数 - 节点动态预热容器网卡数(nic-warm-target) ”大于此阈值时,将会触发预热容器网卡的解绑回收。只支持数值配置。
|
默认:2 |
控制台/API |
Pod访问元数据 |
allow-metadata-network-access |
该功能启用后,集群中的Pod支持访问宿主机元数据。
|
默认:关闭 |
控制台/API |
名称 |
参数 |
详情 |
取值 |
配置方式 |
---|---|---|---|---|
保留原有Pod IP的非伪装网段 |
nonMasqueradeCIDRs |
在VPC网络集群中,集群内的容器如果想要访问集群外,则需要将源Pod IP进行SNAT,转换为节点IP(伪装成节点与外部通信)。配置后,节点默认不会对该参数涉及的网段IP进行SNAT,即不进行这种伪装。 集群中的节点默认不会将目的IP为10.0.0.0/8,172.16.0.0/12,192.168.0.0/16三个网段的报文进行SNAT,因为CCE将这三个网段默认为私有网段,可以借由上层VPC直接将报文送达(即将这三个网段视为集群内的网络,默认三层可达)。 适用集群版本:v1.23.14-r0、v1.25.9-r0、v1.27.6-r0、v1.28.4-r0及以上版本集群支持该配置。 |
默认:10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
说明:
如果需要保证节点能正常访问跨节点的Pod,必须添加节点的子网网段。 同理,如果同VPC下的其他ECS节点需要能正常访问Pod IP,必须添加ECS所在子网网段。 |
控制台/API |
名称 |
参数 |
详情 |
取值 |
配置方式 |
---|---|---|---|---|
启用资源配额管理 |
enable-resource-quota |
用于控制创建Namespace时是否自动创建ResourceQuota对象。通过配额管理功能,用户可以对命名空间或相关维度下的各类负载数量以及资源上限进行控制。
配置建议:在高并发场景下(如批量创建Pod),配额管理机制可能导致部分请求因冲突而失败,除非必要不建议启用该功能;如启用,请确保请求客户端具备重试机制。 |
默认:关闭 |
控制台/API |