创建HPA策略
HPA策略即Horizontal Pod Autoscaling,是Kubernetes中实现POD水平自动伸缩的功能。该策略在Kubernetes社区HPA功能的基础上,增加了应用级别的冷却时间窗和扩缩容阈值等功能。
前提条件
- Kubernetes Metrics Server:提供基础资源使用指标,例如容器CPU和内存使用率。所有集群版本均可安装。
- 云原生监控插件:该插件支持v1.17及以后的集群版本。
- 根据基础资源指标进行弹性伸缩:需将Prometheus注册为Metrics API的服务,详见通过Metrics API提供基础资源指标。
- 根据自定义指标进行弹性伸缩:需要将自定义指标聚合到Kubernetes API Server,详情请参见使用自定义指标创建HPA策略。
- Prometheus(停止维护):需将Prometheus注册为Metrics API的服务,详见通过Metrics API提供资源指标。该插件仅支持v1.21及之前的集群版本。
约束与限制
创建HPA策略
- 在CCE控制台,单击集群名称进入集群。
- 单击左侧导航栏的“工作负载”,在目标工作负载的操作列中单击“更多 > 弹性伸缩”。
图1 工作负载弹性伸缩
- 策略类型选择“HPA+CronHPA策略”,并启用HPA策略,填写HPA策略配置参数。
本文中仅介绍HPA策略,如需启用CronHPA策略,请参见创建CronHPA定时策略。
图2 启用HPA策略
表1 HPA策略配置 参数
参数说明
实例范围
请输入最小实例数和最大实例数。
策略触发时,工作负载实例将在此范围内伸缩。
须知:在CCE Turbo集群中,如果使用独享型ELB对接到工作负载,则最大实例数不能超过ELB的后端服务器组配额(默认为500),否则将会导致多余的实例无法添加到ELB后端。
冷却时间
请输入缩容和扩容的冷却时间,单位为分钟,缩容扩容冷却时间不能小于1分钟。
该设置仅在1.15到1.23版本的集群中显示。
策略成功触发后,在此缩容/扩容冷却时间内,不会再次触发缩容/扩容,目的是等待伸缩动作完成后在系统稳定且集群正常的情况下进行下一次策略匹配。
伸缩配置
该设置仅在1.25及以上版本的集群中显示。
- 系统默认:采用社区推荐的默认行为进行负载伸缩,详情请参见社区默认行为说明。
- 自定义:自定义扩/缩容配置的稳定窗口、步长、优先级等策略,实现更灵活的配置。未配置的参数将采用社区推荐的默认值。
- 禁止扩/缩容:选择是否禁止扩容或缩容。
- 稳定窗口:需要伸缩时,会在一段时间(设定的稳定窗口值)内持续检测,如在该时间段内始终需要进行伸缩(不满足设定的指标期望值)才进行伸缩,避免短时间的指标抖动造成异常。
- 步长策略:扩/缩容的步长,可设置一定时间内扩/缩容Pod数量或百分比。在存在多条策略时,可以选择使Pod数量最多或最少的策略。
系统策略
自定义策略(仅在1.15及以上版本的集群中支持)
说明:使用自定义策略时,集群中需要安装支持采集自定义指标的插件(例如Prometheus),且工作负载需正常上报并采集自定义指标。
采集自定义指标的方法及示例请参见使用云原生监控插件监控自定义指标。
- 自定义指标名称:自定义指标的名称,输入时可根据联想值进行选择。
- 指标来源:在下拉框中选择对象类型,可选择“Pod”。
- 期望值:Pod支持指标为平均值。通过向上取整(当前指标值 / 期望值 × 当前实例数)来计算需要伸缩的实例数。
说明:
HPA在计算扩容、缩容实例数时,会选择最近5分钟内实例数的最大值。
- 容忍范围:指标处于范围内时不会触发伸缩,期望值必须在容忍范围之间。
- 设置完成后,单击“创建”。