HPA策略即Horizontal Pod Autoscaling,是Kubernetes中实现POD水平自动伸缩的功能。该策略在kubernetes社区HPA功能的基础上,增加了应用级别的冷却时间窗和扩缩容阈值等功能。
前提条件
使用HPA需要安装能够提供Metrics API的插件,如metrics-server或Prometheus。
约束与限制
- HPA策略:仅支持1.13及以上版本的集群创建。
- 每个工作负载只能创建一个策略,即如果您创建了一个HPA策略,则不能再对其创建CustomedHPA策略或其他HPA策略,您可以删除该HPA策略后再创建。
- 1.19.10以下版本的集群中,如果使用HPA策略对挂载了EVS卷的负载进行扩容,当新Pod被调度到另一个节点时,会导致之前Pod不能正常读写。
1.19.10及以上版本集群中,如果使用HPA策略对挂载了EVS卷的负载进行扩容,新Pod会因为无法挂载云硬盘导致无法成功启动。
操作步骤
步骤 1 在CCE控制台,单击集群名称进入集群。
步骤 2 单击左侧导航栏的“负载伸缩”,在右上角单击“创建HPA策略”。
步骤 3 填写策略参数。
表 HPA策略参数配置
参数 | 参数说明 |
---|---|
策略名称 | 新建策略的名称,请自定义。 |
命名空间 | 请选择工作负载所在的命名空间。 |
关联工作负载 | 请选择要设置HPA策略的工作负载。 |
实例范围 | 请输入最小实例数和最大实例数。策略触发时,工作负载实例将在此范围内伸缩。 |
冷却时间 | 请输入缩容和扩容的冷却时间,单位为分钟,缩容扩容冷却时间不能小于1分钟。 该设置仅在1.15及以上版本的集群中显示,1.13版本的集群不支持该设置。 策略成功触发后,在此缩容/扩容冷却时间内,不会再次触发缩容/扩容,目的是等待伸缩动作完成后在系统稳定且集群正常的情况下进行下一次策略匹配。 |
策略规则 | 策略规则可基于系统指标或自定义指标。 指标:可选择“CPU利用率”或“内存利用率”。 说明 利用率 = 工作负载Pod的实际使用量 / 申请量。 期望值:请输入期望资源平均利用率。期望值表示所选指标的期望值,通过向上取整(当前指标值 / 期望值 × 当前实例数)来计算需要伸缩的实例数。阈值:请输入缩容和扩容阈值。当指标值大于缩容阈值且小于扩容阈值时,不会触发扩容或缩容。 阈值仅在1.15及以上版本的集群中支持。 自定义策略(仅在1.15及以上版本的集群中支持) 自定义指标名称:自定义指标的名称,输入时可根据联想值进行选择。 指标来源:在下拉框中选择对象类型,可选择“Pod”。 期望值:Pod支持指标为平均值。br伸缩范围:当指标值处于伸缩范围中时才会触发伸缩 说明 HPA在计算扩容、缩容实例数时,会选择最近5分钟内实例数的最大值。 |
步骤 4 设置完成后,单击“创建”,在“完成”步骤中若显示“创建工作负载策略提交成功”,可单击“返回工作负载伸缩策略”。
步骤 5 在“工作负载伸缩”页签下,可以看到刚刚创建的HPA策略。