更新时间:2024-11-13 GMT+08:00

设置弹性伸缩-HPA策略

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

前提条件

仅容器部署方式部署的状态为“运行中”、“未就绪”的组件,且部署环境下的CCE集群为1.15以上版本,支持设置弹性伸缩-HPA。查看组件状态,请参考查看组件详情

设置弹性伸缩-HPA策略

  1. 登录ServiceStage控制台。
  2. 选择以下任意方式进入组件“伸缩”页面:

    • “应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称,在左侧导航栏单击“伸缩”
    • “组件管理”页面,单击待操作组件名称,在左侧导航栏单击“伸缩”

  3. “伸缩”页面,单击“弹性伸缩 - HPA”右侧的,开启伸缩策略配置,进入“伸缩策略配置”页签。

    • CCE集群未安装metrics-server插件,请执行4
    • CCE集群已安装metrics-server插件,请执行6

  4. 单击“立即前往配置”,在云容器引擎控制台完成metrics-server插件安装。

    为CCE集群安装metrics-server插件,请参考metrics-server

  5. 等待插件安装完成后,返回“伸缩策略配置”页面,刷新页面。
  6. 设置伸缩策略参数。

    1. 策略名称

      输入策略名称。伸缩策略设置完成后,策略名称不支持修改。

      长度为4到63个字符,可以包含英文小写字母、数字或中划线(-),必须以英文小写字母开头、以英文小写字母或数字结尾。

    2. 冷却时间

      根据实际业务需要,输入扩容/缩容冷却时间。

      策略成功触发后,在扩容/缩容冷却时间内,不会再次触发扩容/缩容。

    3. 实例范围

      根据实际业务需要,输入最小实例数和最大实例数。其中,最小实例数取值范围为1到299之间的整数;最大实例数取值范围为1到1500之间的整数,且必须大于最小实例数取值。

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

    4. 触发条件

      支持通过“界面配置”“YAML配置”两种方式设置触发条件参数。

      “CPU利用率”“内存利用率”为指标设置触发条件,需要已设置组件的“CPU配额”“内存配额”。如果没有设置,请单击“去修改申请配额”,参考5设置组件“资源”参数后升级组件。

      • “界面配置”方式

        根据实际业务需要,设置“CPU利用率”“内存利用率”指标的“期望值”“阈值”(缩容阈值、扩容阈值)。

        策略成功触发后,通过向上取整(当前CPU或内存利用率指标值 / 期望值 × 当前运行实例数)来计算需要伸缩的实例数。

        • 当前CPU或内存利用率的指标值小于缩容阈值时,触发缩容。
        • 当前CPU或内存利用率的指标值大于扩容阈值时,触发扩容。
      • “YAML配置”方式
         metrics:
           - type: Resource
             resource:
               name: cpu
               target:
                 type: Utilization
                 averageUtilization: 50
           - type: Resource
             resource:
               name: memory
               target:
                 type: Utilization
                 averageUtilization: 50
           - type: Pods
             pods:
               metric:
                 name: packets-per-second
               target:
                 type: AverageValue
                 averageValue: 1k
           - type: Object
             object:
               metric:
                 name: requests-per-second
               describedObject:
                 apiVersion: networking.k8s.io/v1beta1
                 kind: Ingress
                 name: main-route
               target:
                 type: Value
                 value: 10k

        如以上示例所示,使用YAML格式除了使用CPU(cpu)、内存(memory)的利用率(Utilization)作为指标外,还可以自定义指标参数配置,并支持更多指标,如Pods、Object、External等。

        使用“YAML配置”方式配置自定义指标参数,CCE集群需要已安装prometheus插件。

        为CCE集群安装prometheus插件,请参考prometheus

  7. 单击“确定”,完成策略设置。

后续操作

弹性伸缩-HPA策略设置完成后,您可以根据业务需要,执行以下操作: