kubernetes - 我们可以在 Kubernetes 中使用 HPA 以固定块的方式将 Pod 扩展/扩展吗?
问题描述
我有一个托管在 EKS 中的 Web 应用程序,并且有一个用于 CPU 利用率的矩阵,用于水平扩展 Pod。
如果当前的 pod 数量为 10,并且我增加了负载(每分钟增加的请求数),那么所需的 pod 数量取决于我增加负载的积极程度,因此可能是 13、16 等。
但是我希望豆荚的数量应该始终以 5 的倍数增加并以 3 的倍数减少。这可能吗?
解决方案
通过文档和一些代码,这看起来不可能强制水平 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 的确切数量,这只是一个策略。但是,如果工作量增加或减少会很快发生,它应该接近您希望看到的行为。
有用的链接:
推荐阅读
- c# - 如何检测设备类型(桌面/移动/..)。并显示登录用户/客户的相应模式
- firebase - Firebase 身份验证与 Google 身份工具包定价
- pyspark - PySpark和Gensim实现的分布式在线LDA比较
- javascript - 获取动态填充的输入值 React.js
- php - 使用 aws-sdk 终止实例后删除子网时发生 DependencyViolation
- r - 对数据框列向量的下一个元素应用操作
- hadoop - 在 Hadoop 中导航文件系统
- java - 如何对十六进制行键进行 HBase 范围扫描?
- r - 如何用不同的变量处理覆盖两个图?
- python - 在xml python中查找子元素的子元素