CCE容器弹性引擎
CCE容器弹性引擎(cce-hpa-controller)插件是一款CCE自研的插件,能够基于CPU利用率、内存利用率等指标,对无状态工作负载进行弹性扩缩容。
安装本插件后,可创建CronHPA定时策略及CustomedHPA策略,具体请参见创建CronHPA定时策略或创建CustomedHPA策略。
主要功能
- 支持按照当前实例数的百分比进行扩缩容。
- 支持设置一次扩缩容的最小步长。
- 支持按照实际指标值执行不同的扩缩容动作。
约束与限制
- 若cce-hpa-controller版本低于1.2.11,则必须安装prometheus插件;若版本大于或等于1.2.11,则需要安装能够提供Metrics API的插件,您可根据集群版本和实际需求选择其中之一:
- Kubernetes Metrics Server:提供基础资源使用指标,例如容器CPU和内存使用率。所有集群版本均可安装。
- 云原生监控插件:该插件支持v1.17及以后的集群版本。
- 根据基础资源指标进行弹性伸缩:需将Prometheus注册为Metrics API的服务,详见通过Metrics API提供资源指标。
- 根据自定义指标进行弹性伸缩:需要将自定义指标聚合到Kubernetes API Server,详情请参见使用自定义指标创建HPA策略。
- Prometheus(停止维护):需将Prometheus注册为Metrics API的服务,详见通过Metrics API提供资源指标。该插件仅支持v1.21及之前的集群版本。
安装插件
- 登录CCE控制台,单击集群名称进入集群,单击左侧导航栏的“插件中心”,在右侧找到CCE容器弹性引擎插件,单击“安装”。
- 在安装插件页面,根据需求选择“规格配置”。
- 选择“系统预置规格”时,您可根据CCE推荐的预置值设置插件规格,可满足大多数场景,具体数值请以控制台显示为准。
- 选择“自定义规格”时,您可根据需求修改插件各个组件的副本数以及CPU/内存配置。
副本数:副本数为1时插件不具备高可用能力,仅用于验证场景,商用场景请根据集群规格配置多个副本数。
CPU/内存配额:组件的资源配额主要受集群中总容器数量和伸缩策略数量影响。通常场景下,建议集群中每5000个容器配置CPU 500m、内存1000Mi,每1000条伸缩策略配置CPU 100m、内存500Mi。
- 设置插件实例的部署策略。
- 调度策略对于DaemonSet类型的插件实例不会生效。
- 设置多可用区部署或节点亲和策略时,需保证集群中存在满足调度策略的节点且拥有足够的资源,否则插件实例将无法运行。
表1 插件调度配置 参数
参数说明
多可用区部署
- 优先模式:优先将插件的Deployment实例调度到不同可用区的节点上,如集群下节点不满足多可用区,插件实例将调度到单可用区下的不同节点。
- 均分模式:插件Deployment实例均匀调度到当前集群下各可用区,增加新的可用区后建议扩容插件实例以实现跨可用区高可用部署;均分模式限制不同可用区间插件实例数相差不超过1,单个可用区资源不足会导致后续其他实例无法调度。
- 强制模式:插件Deployment实例强制调度到不同可用区的节点上,每个可用区下最多运行一个实例。如集群下节点不满足多可用区,插件实例将无法全部运行。节点故障后,插件实例存在无法迁移风险。
节点亲和
容忍策略
容忍策略与节点的污点能力配合使用,允许(不强制)插件的 Deployment 实例调度到带有与之匹配的污点的节点上,也可用于控制插件的 Deployment 实例所在的节点被标记污点后插件的 Deployment 实例的驱逐策略。
插件会对实例添加针对node.kubernetes.io/not-ready和node.kubernetes.io/unreachable污点的默认容忍策略,容忍时间窗为60s。
详情请参见设置容忍策略。
- 单击“安装”。
组件说明
容器组件 |
说明 |
资源类型 |
---|---|---|
customedhpa-controller |
CCE自研的弹性伸缩组件,可基于CPU利用率、内存利用率等指标,对无状态工作负载进行弹性扩缩容。 |
Deployment |
版本记录
插件版本 |
支持的集群版本 |
更新特性 |
---|---|---|
1.4.30 |
v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 v1.30 |
适配CCE v1.30集群 |
1.4.3 |
v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 |
修复部分问题 |
1.4.2 |
v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 |
适配CCE v1.29集群 |
1.3.43 |
v1.21 v1.23 v1.25 v1.27 v1.28 |
修复部分问题 |
1.3.42 |
v1.21 v1.23 v1.25 v1.27 v1.28 |
适配CCE v1.28集群 |
1.3.14 |
v1.19 v1.21 v1.23 v1.25 v1.27 |
适配CCE v1.27集群 |
1.3.10 |
v1.19 v1.21 v1.23 v1.25 |
周期规则不受冷却时间影响定时触发 |
1.3.7 |
v1.19 v1.21 v1.23 v1.25 |
支持插件实例AZ反亲和配置 |
1.3.3 |
v1.19 v1.21 v1.23 v1.25 |
|
1.3.1 |
v1.19 v1.21 v1.23 |
适配CCE v1.23集群 |
1.2.12 |
v1.15 v1.17 v1.19 v1.21 |
插件性能优化,降低资源消耗 |
1.2.11 |
v1.15 v1.17 v1.19 v1.21 |
|
1.2.10 |
v1.15 v1.17 v1.19 v1.21 |
适配CCE v1.21集群 |
1.2.4 |
v1.15 v1.17 v1.19 |
|
1.2.3 |
v1.15 v1.17 v1.19 |
适配ARM64节点部署 |
1.2.2 |
v1.15 v1.17 v1.19 |
增强健康检查能力 |
1.2.1 |
v1.15 v1.17 v1.19 |
|
1.1.3 |
v1.15 v1.17 |
支持周期扩缩容规则 |