我们可以在 Kubernetes 中使用 HPA 以固定块扩展 pods in/out 吗?

Can we scale pods in/out in fixed chunks using HPA in Kubernetes?

我有一个托管在 EKS 中的 Web 应用程序,并且有一个矩阵供 CPU 使用水平扩展 pods。

如果 pods 的当前数量是 10,并且我增加了负载(每分钟增加请求数),那么所需的 pods 数量取决于我增加负载的积极程度,所以它可能是 13、16 等

但我希望pods的数量总是以5的倍数增加,以3的倍数减少。这可能吗?

通过文档和一些代码,这看起来不可能强制水平 Pod 自动缩放器 (HPA) 缩小或放大 pods 的确切数量,因为它没有 flags/options。

最接近的是设置scaleDownscaleUp政策。

示例下方(注意,这将适用于 v2beta2 api 版本),这部分应位于 spec 下:

behavior:
  scaleDown:
    stabilizationWindowSeconds: 300
    policies:
    - type: Pods
      value: 3
      periodSeconds: 15
  scaleUp:
    stabilizationWindowSeconds: 0
    policies:
    - type: Pods
      value: 5
      periodSeconds: 15

这是什么意思:

  • scaleDown每15秒最多执行3次pods。
  • scaleUp每15秒最多执行5次pods。
  • stabilizationWindowSeconds - 当用于缩放的指标不断波动时,稳定性 window 用于限制副本的摆动。自动缩放算法使用稳定性 window 来考虑过去计算的期望状态以防止缩放

这并不能保证 HPA 会按比例放大或缩小指定的确切数量 pods,这只是一项政策。但是,如果工作量增加或减少会很快发生,它应该接近您希望看到的行为。

有用link: