- 最新动态
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- UCS集群
- 容器舰队
- 集群联邦
- 镜像仓库
- 权限管理
-
策略中心
- 策略中心概述
- 策略定义与策略实例的基本概念
- 启用策略中心
- 创建和管理策略实例
- 示例:使用策略中心实现Kubernetes资源合规性治理
-
使用策略定义库
- 策略定义库概述
- k8spspvolumetypes
- k8spspallowedusers
- k8spspselinuxv2
- k8spspseccomp
- k8spspreadonlyrootfilesystem
- k8spspprocmount
- k8spspprivilegedcontainer
- k8spsphostnetworkingports
- k8spsphostnamespace
- k8spsphostfilesystem
- k8spspfsgroup
- k8spspforbiddensysctls
- k8spspflexvolumes
- k8spspcapabilities
- k8spspapparmor
- k8spspallowprivilegeescalationcontainer
- k8srequiredprobes
- k8srequiredlabels
- k8srequiredannotations
- k8sreplicalimits
- noupdateserviceaccount
- k8simagedigests
- k8sexternalips
- k8sdisallowedtags
- k8sdisallowanonymous
- k8srequiredresources
- k8scontainerratios
- k8scontainerrequests
- k8scontainerlimits
- k8sblockwildcardingress
- k8sblocknodeport
- k8sblockloadbalancer
- k8sblockendpointeditdefaultrole
- k8spspautomountserviceaccounttokenpod
- k8sallowedrepos
- 配置管理
- 服务网格
- 流量分发
- 可观测性
- 云原生服务中心
- 容器迁移
- 流水线
- 错误码
- 最佳实践
- API参考
- 常见问题
- 文档下载
- 通用参考
展开导读
链接复制成功!
配置FederatedHPA策略以控制扩缩速率
为什么需要控制扩缩速率
HPA controller默认的扩缩容总原则是:快速扩容,低速缩容。然而,若仅依靠配置稳定窗口时长,在窗口时长过后即失去了对扩缩容速率的控制能力,无法真正实现对扩缩容速率的准确控制。您可以通过配置负载伸缩策略的YAML文件中spec的behavior结构,来更准确灵活地控制FederatedHPA的自动扩缩速度。该结构支持为每个FederatedHPA策略独立配置扩缩容速率,以及为扩容与缩容配置不同的速率。
操作步骤
针对不同的业务场景,本小节提供常见的behavior结构配置方法。在其他业务场景下,如您希望缓慢扩容、快速缩容等,可以参考下述对behavior结构的解释,针对scaleUp与scaleDown进行配置。
- 场景一:尽快扩容
如果您希望在业务高峰期能尽快扩容,可以配置较大的Percent值。
behavior: scaleUp: policies: - type: Percent value: 900 periodSeconds: 60
本示例中Percent值为900,也就是说,每个扩缩周期都按照(1 + 900%)= 10倍的速率进行扩容。例如,若工作负载中Pod数从1开始,那么在上述配置下,每隔60秒的扩容Pod数的变化如下:1 > 10 > 100 > ... 。需要注意的是,扩缩后的Pod数量不能超过FederatedHPA策略配置的最大Pod数。
Percent类型对资源消耗的波动较大,如果您希望资源消耗可控,可以按绝对数—Pods类型来配置。
behavior: scaleDown: policies: - type: Pods value: 10 periodSeconds: 60
本示例中Pods值为10,也就是说,每个扩缩周期都按照增加10个Pod的增量进行扩容。例如,若工作负载中Pod数从1开始,那么在上述配置下,每隔60秒的扩容Pod数的变化如下:1 > 11 > 21 > ... 。需要注意的是,扩缩后的Pod数量不能超过FederatedHPA策略配置的最大Pod数。
- 场景二:逐步缩容
如果您希望在渡过业务高峰期后,对工作负载的缩容速率能更加缓慢,以提高应用的可靠性,可以配置较小的Pod值与较大的periodSeconds值。
behavior: scaleDown: policies: - type: Pods value: 1 periodSeconds: 600
本示例中Pods值为1,periodSeconds值为600,也就是说:缩容的周期为600秒,每次缩容减少1个Pod。假如 pod 最开始数量为 100,每隔600秒的缩容Pod数的变化如下:100 > 99 > 98 > … 。极端情况下,若希望工作负载不进行自动缩容,可以将Percent值或Pods值配置为0。
- 场景三:默认速率
若不对behavior进行配置,则FederatedHPA策略默认的配置为:
behavior: scaleDown: stabilizationWindowSeconds: 300 policies: - type: Percent value: 100 periodSeconds: 15 scaleUp: stabilizationWindowSeconds: 0 policies: - type: Percent value: 100 periodSeconds: 15 - type: Pods value: 4 periodSeconds: 15
默认配置中,扩缩容的周期为15秒,每个扩缩周期都按照(1 + 100%)= 2倍的速率进行扩容或缩容,每次缩容的Pod数为4。