【问题标题】:Kubernetes HPA behaviorKubernetes HPA 行为
【发布时间】:2021-09-07 10:47:59
【问题描述】:
  behavior:
    scaleUp:
      stabilizationWindowSeconds: 0
      policies:
      - type: Percent
        value: 100
        periodSeconds: 60
      selectPolicy: Max

我们将上述行为用于 hpa,如果平均 CPU 高于目标,我们预计 hpa 每 60 秒将 pod 的数量翻倍。但是,我们从 GKE 日志中看到它实际上是在逐步缓慢增加的。有人知道这背后的逻辑吗?

是什么意思 “在过去 60 秒内创建的实例不超过 100%(每次都会根据使用情况/请求扩大工作负载)”

"如果 cpu 利用率高于目标 cpu,则升级 100%"?

环境: 平台:gke 版本。 1.18.17-gke.1901

【问题讨论】:

    标签: google-kubernetes-engine hpa horizontal-pod-autoscaling


    【解决方案1】:

    您好,欢迎来到 Stack Overflow。

    我尝试使用您的配置实现 HPA,它每 60 秒翻一番。每 60 秒最多会添加 100% 当前运行的副本,直到 HPA 达到稳定状态。

    Sampleconfig.yaml:

    behavior:
      scaleUp:
       stabilizationWindowSeconds: 0
       policies:
       - type: Percent
         value: 100
         periodSeconds: 60
       selectPolicy: Max
    

    因此,可能存在影响 HPA 的其他限制问题。例如,HPA 对其将/可以扩大多少有额外的限制。

    【讨论】:

    • 谢谢!只是检查一下,您的 k8s 版本是什么,您在任何云平台或本地运行吗?从 GKE 的决策日志中可以看出,当时它的升级很少。也许我应该提交一张票问谷歌。
    • 我正在使用 k8s 版本 -1.19.10-gke.1600 并在 Google Cloud Platform 上运行它。如果活动 pod 的平均 CPU 利用率低于目标,则扩展停止。
    • 我明白了。谢谢!我们正在使用 1.18.17-gke.1901,并且正在升级到 1.19。集群升级后让我再试一次。
    • 嗨乔蒂。你在测试期间是否将 cpu 目标设置得非常低? (>>> 0.5 x 当前 CPU 利用率)。根据我的测试和理解,该值是强制“在过去 $periodSeconds 中添加的实例不超过 $value”的阈值。如果流量在 $periodSeconds 内缓慢上升,可能会有多个决策,每个决策都基于 current_cpu/target_cpu 的比率。
    • 如果您设置的目标小于当前利用率的 0.5,它将一步触发 100% 升级,并等待 $periodSecond 直到下一个。
    猜你喜欢
    • 1970-01-01
    • 2019-07-06
    • 2020-04-16
    • 2020-03-07
    • 2021-01-11
    • 2021-10-20
    • 2021-01-20
    • 2020-07-03
    • 1970-01-01
    相关资源
    最近更新 更多