HPA弹性扩缩容
简介
本章节主要指导用户在CCI 2.0配置使用HorizontalPodAutoscaler(HPA,Pod水平自动扩缩容),自动更新无状态负载资源, 目的是自动扩缩无状态负载以满足需求。
HPA会定期调整无状态负载的所需规模,以匹配期望的指标, 例如,平均CPU利用率、平均内存利用率或您指定的任何其他自定义指标。
如何配置HPA
- 登录云容器实例 CCI2.0控制台。
- 单击左侧导航栏“负载管理”,单击“无状态负载”中的某个负载进入负载详情界面。

- 单击“弹性伸缩”。
- 创建HPA策略可以通过以下两种方式,控制台方式和YAML文件方式。
- 方式一:通过控制台创建HPA策略。
- 单击“创建HPA策略”,根据界面提示补充相关信息。相关配置项如表1所示。
表1 创建HPA策略 配置项
说明
名称
自定义HPA策略名称。
命名空间
选择指定命名空间。如需新建请单击“创建命名空间”。
关联工作负载
系统会自动匹配关联工作负载。
实例范围
HPA可伸缩的Pod实例数量上下限。
伸缩配置
系统策略
- 指标: 触发弹性伸缩的监控数据类型,支持选择“CPU 利用率”或“内存利用率”。
说明:计算方式:利用率 = 工作负载容器组(Pod)的实际使用量 / 申请量
- 期望值:您希望工作负载在运行时的“理想资源利用率”。期望值不仅代表目标利用率,系统还会以它为核心,通过公式 向上取整 (当前指标值 / 期望值 × 当前实例数) 来计算需要伸缩的目标实例数。
计算示例: 假设当前实例数为2,期望值为50%。若当前实际指标值升高至85%,系统会按公式 向上取整 (85% / 50% × 2) = 向上取整(3.4),得出此时需要将实例数伸缩为4个。
- 容忍范围:为了防止指标的短暂波动导致系统频繁扩缩容(即“震荡”),系统引入了容忍度机制(默认为0.1,即10%)。
- 免扩缩容区间: 实际指标在 [期望值 × (1 - 容忍度), 期望值 × (1 + 容忍度)] 这个范围内浮动时,系统认为当前状态可以接受,不会触发计算和扩缩容动作。
- 运行示例: 当期望值为50%,容忍度为0.1。则免扩缩容区间为45%到55%。只有当实际利用率持续大于55%(扩容)或持续小于45%(缩容)时,才会真正执行上述期望值的伸缩计算。
当指标值大于缩容阈值且小于扩容阈值时,不会触发扩容或缩容。阈值仅在1.15及以上版本的集群中支持。
须知:可以设置多条系统策略。
- 单击“创建HPA策略”,根据界面提示补充相关信息。相关配置项如表1所示。
- 方式二:通过YAML创建HPA策略。
- 单击“YAML创建”创建HPA策略。
创建HPA的YAML示例如下:
kind: HorizontalPodAutoscaler apiVersion: cci/v2 metadata: name: alpha-test-hpa namespace: cci-test # 命名空间 spec: scaleTargetRef: kind: Deployment name: nginx apiVersion: cci/v2 minReplicas: 1 # 最小副本数 maxReplicas: 5 # 最大副本数 metrics: - type: Resource resource: name: memory # 支持CPU、Memory资源指标 target: type: Utilization # 扩缩类型 averageUtilization: 50 # 触发扩缩的平均使用率 - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 50
- 单击“YAML创建”创建HPA策略。
- 方式一:通过控制台创建HPA策略。
- 进入负载详情,选择负载内的某个Pod单击“查看终端”按钮进入Pod终端,输入命令:
while true; do curl 127.0.0.1:80; done
等待HPA触发,负载扩容并上报事件。


