smu*_*utk 3 kubernetes kubernetes-statefulset kubernetes-pod horizontal-pod-autoscaling
从 Kubernetes v1.18 开始,v2beta2 API 允许通过 Horizontal Pod Autoscalar (HPA) 行为字段配置扩展行为。我计划将具有自定义指标的 HPA 应用于 StatefulSet。
我正在查看的用例是使用自定义指标(例如我的应用程序上的用户会话数)进行扩展,但 HPA 根本不会缩小。K8s SIG 自动缩放增强功能也描述了此用例 - “HPA 的可配置缩放速度 >> 故事 4:照常缩放,不要缩小”。
behavior:
scaleDown:
policies:
- type: pods
value: 0
Run Code Online (Sandbox Code Playgroud)
用户会话可能会保持活动状态几分钟到几小时。从 StatefulSet 的 1 个副本开始,随着用户会话数量达到上限(使用 Prometheus 收集器公开,随后使用 HPA 自定义指标选项进行配置),应用程序 Pod 将横向扩展。新的 Pod 将开始为新用户提供服务。
由于这是一个 StatefulSet 并且不能突然缩小,因此我正在寻求有关当新副本上的用户会话降至 0 时缩小规模的方法的帮助。上面的链接说缩小可以通过单独的过程来控制。不知道该怎么做?寻找一些指点。
谢谢。
您可以使用periodSeconds和stabilizationWindowSeconds值来管理 pod 终止之间经过的时间,例如:
behavior:
scaleDown:
stabilizationWindowSeconds: 10
policies:
- type: Pods
value: 1
periodSeconds: 20
Run Code Online (Sandbox Code Playgroud)
这样,它将每约 30 秒缩小 1 个 pod(或 和 中使用的任何值periodSeconds)stabilizationWindowSeconds。时间可能会随着时间的推移而变化stabilizationWindowSeconds。
periodSeconds描述每个 pod 终止之间将经过多长时间,最大值为 1800 秒(30 分钟)。
stabilizationWindowSeconds当指标表明目标应该缩小时,该算法会查看先前计算的期望状态并使用指定间隔中的最高值。对于缩小,默认值为 300,最大值为 3600(一小时)。
| 归档时间: |
|
| 查看次数: |
2406 次 |
| 最近记录: |