自动伸缩基本操作

最近更新时间: 2024-10-17 17:10:00

操作场景

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

工作原理

HPA 后台组件会每隔30秒向云监控拉取容器和 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,进入工作负载 Deployment 详情页,选择新建

  1. 在“新建Workload”页面,设置实例数量为自动调节

  • 触发策略:自动伸缩功能依赖的策略指标。详情请参见 指标类型

  • 实例范围:请根据实际需求进行选择,实例数量会在设定的范围内自动调节,不会超出该设定范围。

通过新建自动伸缩组

  1. 单击左侧导航栏中集群,进入“集群管理”页面。

  2. 单击需要创建伸缩组的集群 ID,进入工作负载 Deployment 详情页,选择自动伸缩

  3. 在“HorizontalPodAutoscaler”页面,单击新建

  1. 在“新建HPA”页面,根据以下提示,进行 HPA 配置。

  • 名称:输入要创建的自动伸缩组的名称。

  • 命名空间:请根据实际需求进行选择。

  • 工作负载类型:请根据实际需求进行选择。

  • 关联工作负载:不能为空,请根据实际需求进行选择。

  • 触发策略:自动伸缩功能依赖的策略指标,详情请参见 指标类型

  • 实例范围:请根据实际需求进行选择,实例数量会在设定的范围内自动调节,不会超出该设定范围。

  1. 单击创建HPA,完成 HPA 的创建。

通过 YAML 创建

  1. 单击左侧导航栏中集群,进入“集群管理”页面。

  2. 单击需要创建伸缩组的集群 ID,进入工作负载 Deployment 详情页。

  3. 单击该页面右上角YAML创建资源

  1. 在“YAML创建资源”页面,根据实际需求编辑内容,单击完成,即可新建 HPA 。

更新自动扩缩容规则

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

通过更新 Pod 数量

  1. 单击左侧导航栏中集群,进入“集群管理”页面。

  2. 选择需要创建伸缩组的集群 ID,进入工作负载 Deployment 详情页,单击更新Pod数量

  1. 在“更新Pod数量”页面,根据实际需求进行设置,并单击更新实例数目

通过修改 Hpa 配置

  1. 单击左侧导航栏中集群,进入“集群管理”页面。

  2. 选择需要创建伸缩组的集群 ID,进入工作负载 Deployment 详情页,单击自动伸缩

  3. 在“HorizontalPodAutoscaler”页面,单击需要更新配置的 HPA 所在行右侧的修改配置

  1. 在“更新Hpa配置”页面,根据实际需求进行设置,并单击更新Hpa

通过编辑 YAML 更新

  1. 单击左侧导航栏中集群,进入“集群管理”页面。

  2. 单击需要创建伸缩组的集群 ID,选择自动伸缩

  3. 在“HorizontalPodAutoscaler”页面,选择需要更新配置的 HPA 所在行右侧的编辑YAML

  1. 在“更新HorizontalPodAutoscaler”页面,根据实际需求进行编辑,单击完成即可。

指标类型

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