gpt4 book ai didi

Kubernetes HPA(带有自定义指标)扩展策略

转载 作者:行者123 更新时间:2023-12-02 11:46:31 29 4
gpt4 key购买 nike

从 Kubernetes v1.18 开始,v2beta2 API 允许通过 Horizo​​ntal Pod Autoscalar (HPA) 行为字段配置缩放行为。 我计划将具有自定义指标的 HPA 应用于 StatefulSet

我正在查看的用例是使用自定义指标进行扩展(例如,我的应用程序上的用户 session 数),但 HPA 根本不会缩小。这个用例也由 K8s SIG-Autoscaling enhancements - "Configurable scale velocity for HPA >> Story 4: Scale Up As Usual, Do Not Scale Down" 描述。 .

behavior:
scaleDown:
policies:
- type: pods
value: 0

用户 session 可能会在几分钟到几小时内保持事件状态。从 StatefulSet 的 1 个副本开始,随着用户 session 数达到上限(使用 Prometheus 收集器公开并随后使用 HPA 自定义指标选项配置),应用程序 pod 将横向扩展。新的 pod 将开始为新用户提供服务。

由于这是一个 StatefulSet,不能突然缩减,我正在寻求有关如何在新副本上的用户 session 下降到 0 时缩减的帮助。上面的链接说缩小可以由一个单独的过程控制。不确定该怎么做?寻找一些指示。

谢谢。

最佳答案

您可以使用 periodSecondsstabilizationWindowSeconds 值来管理 pod 终止之间耗时,例如:

  behavior:
scaleDown:
stabilizationWindowSeconds: 10
policies:
- type: Pods
value: 1
periodSeconds: 20

这样它会每 ~30 秒缩减 1 个 pod(或者在 periodSecondsstabilizationWindowSeconds 中使用的任何值)。时间可能随时间变化,具体取决于 stabilizationWindowSeconds 值。

periodSeconds 描述了每个 pod 终止之间耗时,最大值为 1800 秒(30 分钟)。

stabilizationWindowSeconds 当指标指示目标应该缩小时,此算法会查看先前计算的所需状态并使用指定间隔中的最大值。缩小默认值为 300,最大值为 3600(一小时)。

关于Kubernetes HPA(带有自定义指标)扩展策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62567106/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com