使用 cce-autoscaling-placeholder 实现秒级弹性伸缩
概述
使用 CCE 节点组并开启自动扩缩容后,当出现 Pod 由于资源不足导致调度失败时,集群会自动进行节点扩容。该流程通常需要若干分钟,当出现流量突发时,分钟级扩容速度难以及时满足业务要求。本文档介绍通过 Kubernetes 的 PriorityClass 实现 Pod 占位,从而在 CCE 上实现秒级伸缩,用于应对流量突发场景。
前提条件
- 已登录 百度智能云官网 并进入管理控制台。
- 已进入容器引擎控制台,并具备目标集群与命名空间的操作权限。
- 目标集群已配置节点组并开启弹性伸缩。
实现原理
cce-autoscaling-placeholder 利用低优先级 Pod 对资源进行提前占位,预留部分资源作为缓冲。当业务 Pod 扩容时,高优先级 Pod 可以快速抢占低优先级 Pod 资源并完成调度,低优先级的 cce-autoscaling-placeholder Pod 会被抢占并转为 Pending。若已配置节点组并启用弹性伸缩,将触发节点扩容,更多信息请参考 节点组管理。
通过预留缓冲资源,即使节点扩容存在延迟,也可保证部分 Pod 快速扩容并调度,实现秒级伸缩。可根据业务需求调整 cce-autoscaling-placeholder 的 request 或副本数,以控制预留缓冲资源规模。
操作步骤
步骤 1:进入 Helm 模板页面
导航路径:产品导览->容器->容器引擎->Helm->Helm 模板
在容器引擎控制台进入 【Helm 模板】 页面,并切换到 【百度智能云模板】。



步骤 2:安装 cce-autoscaling-placeholder 模板
导航路径:产品导览->容器->容器引擎->Helm->Helm 模板
在 【百度智能云模板】 中搜索 cce-autoscaling-placeholder 并单击 【安装】 进入配置页面。填写实例名称,选择目标集群与命名空间后,按业务资源预留需求配置模板参数并提交。安装完成后,在 Helm 实例列表确认状态为已部署。
| 参数 | 参数名称 | 参数含义 | 必填 | 说明 |
|---|---|---|---|---|
replicaCount |
replicaCount | Pod 数 | 是 | 默认值为 3,可按预留资源规模调整。 |
imageID |
imageID | 镜像名称,通用 pause | 是 | 默认使用 pause 镜像。 |
cpu |
cpu | 单个 Pod 占用 CPU | 否 | 按业务预留资源规划设置。 |
memory |
memory | 单个 Pod 占用内存 | 否 | 按业务预留资源规划设置。 |
nodeSelector |
nodeSelector | 自定义 nodeSelector | 否 | 推荐与目标 InstanceGroup 保持一致。 |
tolerations |
tolerations | 自定义 tolerations | 否 | 按节点污点策略配置。 |
affinity |
affinity | 自定义 affinity | 否 | 按调度策略配置。 |



步骤 3:创建 Nginx 工作负载并验证抢占扩容
导航路径:产品导览->容器->容器引擎->工作负载->无状态
进入 【无状态】 页面,单击 【新建无状态】 创建 Nginx 工作负载,按业务需求配置命名空间、镜像、期望 Pod 数及 CPU/内存资源。创建完成后查看 Pod 事件,验证是否发生抢占与扩容。
若事件中出现 Insufficient cpu/ip 与 No preemption victims found for incoming pod,表示当前环境已触发扩容验证场景,但暂未出现可抢占目标,需要补充节点或 IP 资源后复验秒级抢占效果。



参考
评价此篇文章
