工作负载弹性伸缩(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,未来会开放更多插件供选择。
操作步骤
- 登录UCS集群控制台。
- 如果是未加入舰队集群,直接单击集群名即可进入集群控制台。
- 如果是已加入容器舰队的集群,先进入对应容器舰队控制台,选择左侧 “集群管理”内的“容器集群”,再进入对应集群控制台。
- 左侧导航栏内选择“负载伸缩策略”,单击右上角的“创建 HPA 策略”。
- 填写待创建HPA策略的参数:
表1 HPA策略参数配置 参数
参数说明
策略名称
新建策略的名称,请自定义。
命名空间
请选择工作负载所在的命名空间。
关联工作负载
请选择要设置HPA 策略的工作负载。
实例范围
请输入最小实例数和最大实例数。
策略触发时,工作负载实例将在此范围内伸缩。
系统策略
- 指标:可选择“CPU利用率”或“内存利用率”。
说明:利用率 = 工作负载容器组(Pod)的实际使用量 / 申请量
- 期望值:请输入期望资源平均利用率。
期望值表示所选指标的期望值,通过向上取整(当前指标值 / 期望值 × 当前实例数)来计算需要伸缩的实例数。
说明:HPA在计算扩容、缩容实例数时,会选择最近5分钟内实例数的最大值。
须知:可以设置多条系统策略。