# CCE容器弹性引擎
CCE容器弹性引擎（原名cce-hpa-controller）插件是一款CCE自研的插件，能够基于CPU利用率、内存利用率等指标，对无状态工作负载进行弹性扩缩容。
安装本插件后，可创建CronHPA定时策略及CustomedHPA策略，具体请参见[创建CronHPA定时策略](https://support.huaweicloud.com/usermanual-cce/cce_10_0415.html)或[创建CustomedHPA策略](https://support.huaweicloud.com/usermanual-cce/cce_10_0292.html)。
#### 主要功能
- 支持按照当前实例数的百分比进行扩缩容。
- 支持设置一次扩缩容的最小步长。
- 支持按照实际指标值执行不同的扩缩容动作。
 
#### 约束与限制
- 若CCE容器弹性引擎版本低于1.2.11，则必须安装[prometheus](https://support.huaweicloud.com/usermanual-cce/cce_10_0221.html)插件；若版本大于或等于1.2.11，则需要安装能够提供Metrics API的插件，您可根据集群版本和实际需求选择其中之一：
  - [Kubernetes Metrics Server](https://support.huaweicloud.com/usermanual-cce/cce_10_0205.html)：提供基础资源使用指标，例如容器CPU和内存使用率，默认采集周期为60s。所有集群版本均可安装。
  
  - [云原生监控插件](https://support.huaweicloud.com/usermanual-cce/cce_10_0406.html)：使用HPA需要开启本地数据存储。该插件支持v1.17及以后的集群版本，默认采集周期为15s。
    - 根据基础资源指标进行弹性伸缩：需将Prometheus注册为Metrics API的服务，详见[通过Metrics API提供基础资源指标](https://support.huaweicloud.com/usermanual-cce/cce_10_0406.html#cce_10_0406__section17830202915211)。如果集群中已安装[Kubernetes Metrics Server](https://support.huaweicloud.com/usermanual-cce/cce_10_0205.html)，该插件默认提供Metrics API，无需重复注册。
    
    - 根据自定义指标进行弹性伸缩：除了将Prometheus注册为Metrics API的服务，还需要将自定义指标聚合到Kubernetes API Server，详情请参见[使用自定义指标创建HPA策略](https://support.huaweicloud.com/usermanual-cce/cce_10_0406.html#cce_10_0406__section11927514174016)。
     
  
  - [Prometheus（停止维护）](https://support.huaweicloud.com/usermanual-cce/cce_10_0221.html)：如果集群中未安装[Kubernetes Metrics Server](https://support.huaweicloud.com/usermanual-cce/cce_10_0205.html)，需手动为Prometheus创建Metrics API，详见[通过Metrics API提供资源指标](https://support.huaweicloud.com/usermanual-cce/cce_10_0221.html#cce_10_0221__section13409107262)。该插件仅支持v1.21及之前的集群版本。在1.21以上版本集群中已经停止维护该插件。在CCE集群中不推荐使用该插件，推荐使用[云原生监控插件](https://support.huaweicloud.com/usermanual-cce/cce_10_0406.html)或者[Kubernetes Metrics Server](https://support.huaweicloud.com/usermanual-cce/cce_10_0205.html)。
   
 
#### 安装插件
1. 登录[CCE控制台](https://console.huaweicloud.com/cce2.0/?#/cce/cluster/list)，单击集群名称进入集群。
2. 单击左侧导航栏的"插件中心"，在右侧找到**CCE容器弹性引擎**插件，单击"安装"。
3. 在安装插件页面，根据需求选择"规格配置"。 
   - 选择"系统预置规格"时，您可根据CCE推荐的预置值设置插件规格，可满足大多数场景，具体数值请以控制台显示为准。
   
   - 选择"自定义规格"时，您可根据需求修改插件各个组件的副本数以及CPU/内存配置。
     ![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
     副本数：副本数为1时插件不具备高可用能力，仅用于验证场景，商用场景请根据集群规格配置多个副本数。
     CPU/内存配额：组件的资源配额主要受集群中总容器数量和伸缩策略数量影响。通常场景下，建议集群中每5000个容器配置CPU 500m、内存1000Mi，每1000条伸缩策略配置CPU 100m、内存500Mi。
     
   
   
   
   
4. 设置插件支持的"参数配置"。 
   - AHPA策略：开启后，可根据历史监控指标趋势，预测副本数并提前扩缩容。详情请参见[创建AHPA策略](https://support.huaweicloud.com/usermanual-cce/cce_10_0934.html)。
     AHPA策略依赖安装云原生监控插件，请先安装插件并开启"监控数据上报至AOM服务"开关。详情请参见[云原生监控插件](https://support.huaweicloud.com/usermanual-cce/cce_10_0406.html)。
     
   
   
   
   
5. 设置插件实例的部署策略。 
   ![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/note_3.0-zh-cn.png)
   - 调度策略对于DaemonSet类型的插件实例不会生效。
   
   - 设置多可用区部署或节点亲和策略时，需保证集群中存在满足调度策略的节点且拥有足够的资源，否则插件实例将无法运行。
    
   表1插件调度配置 
   | 参数   | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   |:---|:---|
   | 多可用区部署 | - 优先模式：优先将插件的Deployment实例调度到不同可用区的节点上，如集群下节点不满足多可用区，插件实例将调度到单可用区下的不同节点。  - 均分模式：插件Deployment实例均匀调度到当前集群下各可用区，增加新的可用区后建议扩容插件实例以实现跨可用区高可用部署；均分模式限制不同可用区间插件实例数相差不超过1，单个可用区资源不足会导致后续其他实例无法调度。  - 强制模式：插件Deployment实例强制调度到不同可用区的节点上，每个可用区下最多运行一个实例。如集群下节点不满足多可用区，插件实例将无法全部运行。节点故障后，插件实例存在无法迁移风险。                                                                                                    |
   | 节点亲和 | - 不配置：插件实例不指定节点亲和调度。  - 指定节点调度：指定插件实例部署的节点。若不指定，将根据集群默认调度策略进行随机调度。  - 指定节点池调度：指定插件实例部署的节点池。若不指定，将根据集群默认调度策略进行随机调度。  - 自定义亲和策略：填写期望插件部署的节点标签实现更灵活的调度策略，若不填写将根据集群默认调度策略进行随机调度。 同时设置多条自定义亲和策略时，需要保证集群中存在同时满足所有亲和策略的节点，否则插件实例将无法运行。    |
   | 容忍策略  | 容忍策略与节点的污点能力配合使用，允许（不强制）插件的 Deployment 实例调度到带有与之匹配的污点的节点上，也可用于控制插件的 Deployment 实例所在的节点被标记污点后插件的 Deployment 实例的驱逐策略。 插件会对实例添加针对**node.kubernetes.io/not-ready** 和**node.kubernetes.io/unreachable**污点的默认容忍策略，容忍时间窗为60s。 详情请参见[设置容忍策略](https://support.huaweicloud.com/usermanual-cce/cce_10_0728.html)。                                                                                                                                                                                                                                                                |
      
   
   
6. 单击"安装"。
 
#### 组件说明
表2插件组件 
| 容器组件                  | 说明                                                | 资源类型      |
|:---|:---|:---|
| customedhpa-controller | CCE自研的弹性伸缩组件，可基于CPU利用率、内存利用率等指标，对无状态工作负载进行弹性扩缩容。 | Deployment |
   
#### 相关文档
插件安装完成后，您可以创建多种工作负载弹性伸缩策略：
- [创建HPA策略](https://support.huaweicloud.com/usermanual-cce/cce_10_0208.html)
- [创建CronHPA定时策略](https://support.huaweicloud.com/usermanual-cce/cce_10_0415.html)
- [创建CustomedHPA策略](https://support.huaweicloud.com/usermanual-cce/cce_10_0292.html)
- [创建AHPA策略](https://support.huaweicloud.com/usermanual-cce/cce_10_0934.html)
 
关于以上弹性伸缩策略差异及原理说明，请参见[工作负载伸缩原理](https://support.huaweicloud.com/usermanual-cce/cce_10_0290.html)。
#### 版本记录
表3CCE容器弹性引擎插件版本记录 
| 插件版本    | 支持的集群版本                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 更新特性                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|
| 1.5.89     | v1.29 v1.30 v1.31 v1.32 v1.33 v1.34 v1.35 v1.36                  | 修复部分问题                                                                                                                                                                                                                                                                                            |
| 1.5.85    | v1.29 v1.30 v1.31 v1.32 v1.33 v1.34 v1.35 v1.36 | 支持CCE v1.36集群                                                                                                                                                                                                                                                                                    |
| 1.5.84    | v1.29 v1.30 v1.31 v1.32 v1.33 v1.34 v1.35                                                                          | 修复部分问题                                                                                                                                                                                                                                                                                           |
| 1.5.74    | v1.29 v1.30 v1.31 v1.32 v1.33 v1.34 v1.35                                                                        | 支持CCE v1.35集群                                                                                                                                                                                                                                                                                     |
| 1.5.57    | v1.28 v1.29 v1.30 v1.31 v1.32 v1.33 v1.34                                                                         | 支持PodLevelResources                                                                                                                                                                                                                                                                               |
| 1.5.51   | v1.28 v1.29 v1.30 v1.31 v1.32 v1.33 v1.34                                                                        | 修复部分问题                                                                                                                                                                                                                                                                                          |
| 1.5.41     | v1.28 v1.29 v1.30 v1.31 v1.32 v1.33 v1.34                                                                              | 支持CCE v1.34集群                                                                                                                                                                                                                                                                                       |
| 1.5.38   | v1.27 v1.28 v1.29 v1.30 v1.31 v1.32 v1.33                                                                        | 修复部分问题                                                                                                                                                                                                                                                                                          |
| 1.5.37  | v1.27 v1.28 v1.29 v1.30 v1.31 v1.32 v1.33                                                                        | 支持CCE v1.33集群                                                                                                                                                                                                                                                                                   |
| 1.5.32    | v1.25 v1.27 v1.28 v1.29 v1.30 v1.31 v1.32                                                                               | 支持CCE v1.32集群                                                                                                                                                                                                                                                                                      |
| 1.5.24 | v1.25 v1.27 v1.28 v1.29 v1.30 v1.31                                                                                                                                          | 修复部分问题                                                                                                                                                                                                                                                                                          |
| 1.5.21     | v1.25 v1.27 v1.28 v1.29 v1.30 v1.31                                                                                                                                                  | - 支持CCE v1.31集群  - 支持应用趋势预测的智能弹性                          |
| 1.5.3     | v1.21 v1.23 v1.25 v1.27 v1.28 v1.29 v1.30                                                                               | 支持AHPA                                                                                                                                                                                                                                                                                           |
| 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.16   | v1.19 v1.21 v1.23 v1.25 v1.27                                                                                                                                                                                                                | 修复部分问题。                                                                                                                                                                                                                                                                                           |
| 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                                                                                                                                                                                                                                                                          | - 适配CCE v1.25集群  - CronHPA调整Deployment实例数，新增skip场景   |
| 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                                                                                                                                                                                                                                                                           | - 从K8s Metrics API查询资源指标  - 计算资源利用率时考虑未就绪的Pod       |
| 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                                                                                                                                                                                                                                                                                                                                            | - 适配CCE v1.19集群  - 更新插件为稳定版本                          |
| 1.1.3     | v1.15 v1.17                                                                                                                                                                                                                                                                                                                                                                                                                 | 支持周期扩缩容规则                                                                                                                                                                                                                                                                                       |
   
