文档首页/ 华为云UCS/ 用户指南/ UCS集群/ 单集群管理/ 工作负载弹性伸缩(HPA)
更新时间:2024-06-17 GMT+08:00

工作负载弹性伸缩(HPA)

HPA策略即Horizontal Pod Autoscaling,是Kubernetes中实现Pod水平自动伸缩的功能。该策略在Kubernetes社区HPA功能的基础上,增加了应用级别的冷却时间窗和扩缩容阈值等功能。

前提条件

使用HPA前需要在集群内安装能够提供Metrics API的插件(详情请参见对Metrics API的支持):

  • metrics-server:metrics-server从kubelet公开的Summary API中采集度量数据,提供基础资源使用指标,例如容器CPU和内存使用率。
    • 为本地集群安装metrics-server,请参见metrics-server
    • 为其他集群安装metrics-server,请参见社区官方文档。对于附着集群,您也可安装对应厂商所提供的metric-server插件。
  • Prometheus:Prometheus是一套开源的系统监控报警框架,能够采集丰富的Metrics(度量数据),因此除基础资源指标外,Prometheus还支持提供自定义指标。

约束与限制

  • 需要创建弹性扩缩容策略的集群至少有一个实例, 如果没有实例则会自动进行扩容。
  • 如果集群内未安装系统指标采集插件,负载伸缩策略会无法生效。
  • 目前本地集群仅支持metrics-server插件来提供Metrics API,未来会开放更多插件供选择。

操作步骤

  1. 登录UCS集群控制台。

    • 如果是未加入舰队集群,直接单击集群名即可进入集群控制台。
    • 如果是已加入容器舰队的集群,先进入对应容器舰队控制台,选择左侧 “集群管理”内的“容器集群”,再进入对应集群控制台。

  2. 左侧导航栏内选择“负载伸缩策略”,单击右上角的“创建 HPA 策略”。
  3. 填写待创建HPA策略的参数:

    表1 HPA策略参数配置

    参数

    参数说明

    策略名称

    新建策略的名称,请自定义。

    命名空间

    请选择工作负载所在的命名空间。

    关联工作负载

    请选择要设置HPA 策略的工作负载。

    实例范围

    请输入最小实例数和最大实例数。

    策略触发时,工作负载实例将在此范围内伸缩。

    系统策略

    • 指标:可选择“CPU利用率”或“内存利用率”。
    说明:

    利用率 = 工作负载容器组(Pod)的实际使用量 / 申请量

    • 期望值:请输入期望资源平均利用率。

    期望值表示所选指标的期望值,通过向上取整(当前指标值 / 期望值 × 当前实例数)来计算需要伸缩的实例数。

    说明:

    HPA在计算扩容、缩容实例数时,会选择最近5分钟内实例数的最大值。

    • 容忍范围:容忍度默认为0.1。指标处于范围内时不会触发伸缩,期望值必须在容忍范围之间。

      当指标值大于缩容阈值且小于扩容阈值时,不会触发扩容或缩容。阈值仅在1.15及以上版本的集群中支持

    须知:

    可以设置多条系统策略。