有奖捉虫:云通信与企业服务文档专题,速来> HOT

操作场景

实例(Pod)自动扩缩容功能(Horizontal Pod Autoscaler,HPA)可以根据目标实例 CPU 利用率的平均值等指标自动扩展、缩减服务的 Pod 数量。本文介绍如何通过腾讯云容器服务控制台实现 Pod 自动扩缩容。

工作原理

HPA 后台组件会每隔15秒向腾讯云可观测平台拉取容器和 Pod 的监控指标,然后根据当前指标数据、当前副本数和该指标目标值进行计算,计算所得结果作为服务的期望副本数。当期望副本数与当前副本数不一致时,HPA 会触发 Deployment 进行 Pod 副本数量调整,从而达到自动伸缩的目的。 以 CPU 利用率为例,假设当前有2个实例, 平均 CPU 利用率(当前指标数据)为90%,自动伸缩设置的目标 CPU 为60%, 则自动调整实例数量为:90% × 2 / 60% = 3个。
注意
如果用户设置了多个弹性伸缩指标,HPA 会依据各个指标,分别计算出目标副本数,取最大值进行扩缩容操作。

注意事项

当指标类型选择为 CPU 利用率(占 Request)时,必须为容器设置 CPU Request。
策略指标目标设置合理,例如设置70%给容器和应用,预留30%的余量。
保持 Pod 和 Node 健康(避免 Pod 频繁重建)。
保证用户请求的负载均衡稳定运行。
HPA 在计算目标副本数时会有一个10%的波动因子。如果在波动范围内,HPA 并不会调整副本数目。
如果服务对应的 Deployment.spec.replicas 值为0,HPA 将不起作用。
如果对单个 Deployment 同时绑定多个 HPA ,则创建的 HPA 会同时生效,会造成工作负载的副本重复扩缩。

前提条件

已创建集群。操作详情请参见 创建集群

操作步骤

开启自动扩缩容

可以通过以下方式开启自动扩缩容。

通过设置实例数量调节

1. 登录容器服务控制台,选择左侧导航栏中的 集群
2. 集群管理页面,选择集群 ID,进入集群的基本信息页面。
3. 工作负载 > Deployment 页面,单击新建
4. 新建 Deployment 页面,设置实例数量为自动调节。如下图所示:



触发策略:自动伸缩功能依赖的策略指标。详情请参见 指标类型
实例范围:请根据实际需求进行选择,实例数量会在设定的范围内自动调节,不会超出该设定范围。

通过新建自动伸缩组

1. 登录容器服务控制台,选择左侧导航栏中的 集群
2. 集群管理页面,选择集群 ID,进入集群的基本信息页面。
3. 自动伸缩 > HorizontalPodAutoscaler 页面,单击新建
4. 新建 HorizontalPodAutoscaler 页面,根据以下提示,进行 HPA 配置。如下图所示:



名称:输入要创建的自动伸缩组的名称。
命名空间:请根据实际需求进行选择。
工作负载类型:请根据实际需求进行选择。
关联工作负载:不能为空,请根据实际需求进行选择。
触发策略:自动伸缩功能依赖的策略指标,详情请参见 自动伸缩指标说明
实例范围:请根据实际需求进行选择,实例数量会在设定的范围内自动调节,不会超出该设定范围。
5. 单击创建 HPA

更新自动扩缩容规则

可以通过以下方式更新服务自动扩缩容规则。

通过更新 Pod 数量

1. 登录容器服务控制台,选择左侧导航栏中的 集群
2. 集群管理页面,选择集群 ID,进入集群的基本信息页面。
3. 工作负载 > Deployment 页面,单击实例右侧的更新 Pod 数量


4. 更新 Pod 数量页面,选择自动调节,并根据实际需求进行设置。如下图所示:


5. 单击更新实例数量

通过修改 HPA 配置

1. 登录容器服务控制台,选择左侧导航栏中的 集群
2. 集群管理页面,选择集群 ID,进入集群的基本信息页面。
3. 自动伸缩 > HorizontalPodAutoscaler 页面,单击实例右侧的修改配置。如下图所示:


4. 更新配置页面,根据实际需求进行设置。如下图所示:



5. 单击更新 HPA。

指标类型

相关指标和类型请参见 自动伸缩指标说明