自动伸缩基本操作
操作场景
实例(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 会同时生效,会造成的集群反复扩缩容。
前提条件
已创建集群。关于创建集群,详情请参见 创建集群。
操作步骤
开启自动扩缩容
可以通过以下三种方式开启自动扩缩容。
通过设置实例数量调节
-
进入集群管理页面:单击左侧导航栏中【集群】,进入“集群管理”页面。
-
进入工作负载页面:单击需要创建伸缩组的集群 ID,进入工作负载 Deployment 详情页,选择【新建】。
-
设置实例数量为自动调节:在“新建 Workload”页面,设置实例数量为 自动调节。
- 触发策略:自动伸缩功能依赖的策略指标。详情请参见 指标类型。
- 实例范围:请根据实际需求进行选择,实例数量会在设定的范围内自动调节,不会超出该设定范围。
通过新建自动伸缩组
-
进入集群管理页面:单击左侧导航栏中【集群】,进入“集群管理”页面。
-
进入自动伸缩页面:单击需要创建伸缩组的集群 ID,进入工作负载 Deployment 详情页,选择【自动伸缩】。
-
新建 HPA:在“HorizontalPodAutoscaler”页面,单击【新建】。
-
配置 HPA:在“新建 HPA”页面,根据以下提示,进行 HPA 配置。
- 名称:输入要创建的自动伸缩组的名称。
- 命名空间:请根据实际需求进行选择。
- 工作负载类型:请根据实际需求进行选择。
- 关联工作负载:不能为空,请根据实际需求进行选择。
- 触发策略:自动伸缩功能依赖的策略指标,详情请参见 指标类型。
- 实例范围:请根据实际需求进行选择,实例数量会在设定的范围内自动调节,不会超出该设定范围。
-
完成创建:单击【创建 HPA】,完成 HPA 的创建。
通过 YAML 创建
-
进入集群管理页面:单击左侧导航栏中【集群】,进入“集群管理”页面。
-
进入工作负载页面:单击需要创建伸缩组的集群 ID,进入工作负载 Deployment 详情页。
-
YAML 创建资源:单击该页面右上角【YAML 创建资源】。
-
编辑 YAML:在“YAML 创建资源”页面,根据实际需求编辑内容,单击【完成】,即可新建 HPA。
更新自动扩缩容规则
可以通过以下三种方式更新服务自动扩缩容规则。
通过更新 Pod 数量
-
进入集群管理页面:单击左侧导航栏中【集群】,进入“集群管理”页面。
-
更新 Pod 数量:选择需要创建伸缩组的集群 ID,进入工作负载 Deployment 详情页,单击【更新 Pod 数量】。
-
设置并更新:在“更新 Pod 数量”页面,根据实际需求进行设置,并单击【更新实例数目】。
通过修改 HPA 配置
-
进入集群管理页面:单击左侧导航栏中【集群】,进入“集群管理”页面。
-
进入自动伸缩页面:选择需要创建伸缩组的集群 ID,进入工作负载 Deployment 详情页,单击【自动伸缩】。
-
修改配置:在“HorizontalPodAutoscaler”页面,单击需要更新配置的 HPA 所在行右侧的【修改配置】。
-
更新 HPA:在“更新 HPA 配置”页面,根据实际需求进行设置,并单击【更新 HPA】。
通过编辑 YAML 更新
-
进入集群管理页面:单击左侧导航栏中【集群】,进入“集群管理”页面。
-
进入自动伸缩页面:单击需要创建伸缩组的集群 ID,选择【自动伸缩】。
-
编辑 YAML:在“HorizontalPodAutoscaler”页面,选择需要更新配置的 HPA 所在行右侧的【编辑 YAML】。
-
完成更新:在“更新 HorizontalPodAutoscaler”页面,根据实际需求进行编辑,单击【完成】即可。
指标类型
相关指标和类型请参见 自动伸缩指标说明。