【发布时间】:2021-08-26 12:44:30
【问题描述】:
我有一个托管在 EKS 中的 Web 应用程序,并且有一个用于水平扩展 pod 的 CPU 利用率矩阵。
如果当前的 pod 数量为 10,并且我增加了负载(每分钟增加的请求数),那么所需的 pod 数量取决于我增加负载的积极程度,因此可能是 13、16 等等。
但我希望 pod 的数量应始终以 5 的倍数增加并以 3 的倍数减少。这可能吗?
【问题讨论】:
标签: kubernetes hpa
我有一个托管在 EKS 中的 Web 应用程序,并且有一个用于水平扩展 pod 的 CPU 利用率矩阵。
如果当前的 pod 数量为 10,并且我增加了负载(每分钟增加的请求数),那么所需的 pod 数量取决于我增加负载的积极程度,因此可能是 13、16 等等。
但我希望 pod 的数量应始终以 5 的倍数增加并以 3 的倍数减少。这可能吗?
【问题讨论】:
标签: kubernetes hpa
查看文档和一些代码,这看起来不可能强制水平 pod 自动缩放器 (HPA) 缩小或放大 pod 的确切数量,因为它没有标志/选项。
最接近的方法是设置scaleDown 和scaleUp 政策。
示例下方(注意,这将适用于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 个 pod。scaleUp 每 15 秒最多执行 5 个 pod。stabilizationWindowSeconds - 当用于扩展的指标不断波动时,稳定窗口用于限制副本的摆动。自动缩放算法使用稳定窗口来考虑过去计算的所需状态以防止缩放这并不能保证 HPA 会扩大或缩小指定 pod 的确切数量,这只是一个政策。但是,如果工作量增加或减少会很快发生,它应该接近您希望看到的行为。
有用的链接:
【讨论】: