【发布时间】:2020-07-21 04:22:09
【问题描述】:
我已向我的 HorizontalPodAutoscaler 添加了一些缩放策略,但它们没有被应用。 scaleUp 和 scaleDown 行为被忽略。我需要一种方法来阻止 Pod 每隔几分钟就扩大和缩小一次以响应小的 CPU 峰值。理想情况下,HPA 会快速扩展以响应更多流量,但在流量减少约 30 分钟后缓慢缩减。
我在 AWS EKS 集群上运行它,我已经根据 https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-configurable-scaling-behavior 设置了策略。
这可能是 EKS 或我的 K8s 版本 1.14 的限制。我已经运行 kubectl api-versions 并且我的集群确实支持 autoscaling/v2beta2。
我的 Helm 规格是:
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: {{ template "app.fullname" . }}
labels:
app: {{ template "app.name" . }}
chart: {{ template "app.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
scaleTargetRef:
apiVersion: apps/v1beta2
kind: Deployment
name: "{{ template "app.fullname" . }}-server"
minReplicas: {{ .Values.hpa.minReplicas }}
maxReplicas: {{ .Values.hpa.maxReplicas }}
metrics:
- type: Resource
resource:
name: cpu
target:
type: AverageValue
averageValue: 200m
behavior:
scaleUp:
stabilizationWindowSeconds: 300
policies:
- type: Pods
value: 1
periodSeconds: 300
scaleDown:
stabilizationWindowSeconds: 1200
policies:
- type: Pods
value: 1
periodSeconds: 300
【问题讨论】:
-
您能否使用以下信息编辑您的问题: 1. 您想要实现的预期行为是什么? 2.现在是什么?
-
你能确定你已经安装了度量服务器吗?如果您没有安装它,请告诉我,我会发布如何正确执行此操作的答案aws.amazon.com/premiumsupport/knowledge-center/…
-
我确实安装了度量服务器
-
autoscaling/v2beta2API 在不同的 Kubernetes 版本上是否有所不同?在文档中它说“从 v1.18 开始,v2beta2 API 允许通过 HPA 行为字段配置缩放行为。” -
@MikhailJanowski 如前所述:从 v1.18 开始。您当前的 K8s 版本是 1.14。即使您启用了自动缩放/v2beta2,这也不起作用。最简单的方法是升级到 1.18。
标签: kubernetes kubernetes-helm autoscaling policies kubernetes-hpa