
# 工作负载弹性伸缩（HPA）
HPA策略即Horizontal Pod Autoscaling，是Kubernetes中实现Pod水平自动伸缩的功能。该策略在Kubernetes社区HPA功能的基础上，增加了应用级别的冷却时间窗和扩缩容阈值等功能。
#### 前提条件
使用HPA前需要在集群内安装能够提供Metrics API的插件（详情请参见[对Metrics API的支持](https://kubernetes.io/zh-cn/docs/concepts/workloads/autoscaling/horizontal-pod-autoscale/#support-for-metrics-apis)）：
- metrics-server：metrics-server从kubelet公开的Summary API中采集度量数据，提供基础资源使用指标，例如容器CPU和内存使用率。
  - 为本地集群安装metrics-server，请参见[metrics-server](https://support.huaweicloud.com/usermanual-ucs/ucs_01_0301.html)。
  
  - 为其他集群安装metrics-server，请参见[社区官方文档](https://github.com/kubernetes-sigs/metrics-server)。对于附着集群，您也可安装对应厂商所提供的metric-server插件。
   
- Prometheus：Prometheus是一套开源的系统监控报警框架，能够采集丰富的Metrics（度量数据），因此除基础资源指标外，Prometheus还支持提供自定义指标。
 
#### 约束与限制
- 需要创建弹性扩缩容策略的集群至少有一个实例， 如果没有实例则会自动进行扩容。
- 如果集群内未安装系统指标采集插件，负载伸缩策略会无法生效。
- 目前本地集群仅支持metrics-server插件来提供Metrics API，未来会开放更多插件供选择。
 
#### 操作步骤
1. 登录[UCS控制台](https://console.huaweicloud.com/ucs/?#/aether/dashboard)，进入集群页面。
   
   - 如果是未加入舰队集群，直接单击集群名即可进入集群控制台。
   
   - 如果是已加入容器舰队的集群，先进入对应容器舰队控制台，选择左侧 "集群管理"内的"容器集群"，再进入对应集群控制台。
   
   
   
   
2. 左侧导航栏内选择"负载伸缩策略"，单击右上角的"创建 HPA 策略"。
3. 填写待创建HPA策略的参数： 
   表1HPA策略参数配置 
   | 参数     | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   |:---|:---|
   | 策略名称   | 新建策略的名称，请自定义。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | 命名空间   | 请选择工作负载所在的命名空间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | 关联工作负载 | 请选择要设置HPA 策略的工作负载。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 实例范围   | 请输入最小实例数和最大实例数。 策略触发时，工作负载实例将在此范围内伸缩。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 系统策略   | - 指标：可选择"CPU利用率"或"内存利用率"。   说明： 利用率 = 工作负载容器组（Pod）的实际使用量 / 申请量 - 期望值：请输入期望资源平均利用率。   期望值表示所选指标的期望值，通过向上取整（当前指标值 / 期望值 × 当前实例数）来计算需要伸缩的实例数。 说明： HPA在计算扩容、缩容实例数时，会选择最近5分钟内实例数的最大值。 - 容忍范围：容忍度默认为0.1。指标处于范围内时不会触发伸缩，期望值必须在容忍范围之间。 当指标值大于缩容阈值且小于扩容阈值时，不会触发扩容或缩容。**阈值仅在1.15及以上版本的集群中支持**。    须知： 可以设置多条系统策略。 |
      
   
   
 
