Jer*_*ars 2 cpu-usage google-cloud-platform kubernetes google-kubernetes-engine hpa
我正在 Kubernetes 中使用 Horizontal Pod Autoscaler。我已将 HPA 设置为在平均 CPU 利用率超过 35% 时启动新实例。然而,这似乎并没有按预期工作。即使 CPU 利用率远低于定义的目标利用率,HPA 也会触发重新调整。如下所示,“当前”利用率为 10%,与 35% 相去甚远。但它仍然将 Pod 数量从 5 个调整为 6 个。

我还检查了我的 Google Cloud Platform 仪表板(我们托管应用程序的位置)中的指标。这也表明请求的 CPU 利用率没有超过 35% 的阈值。但仍然发生了几次调整。

我的 HPA 的内容
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: django
spec:
{{ if eq .Values.env "prod" }}
minReplicas: 5
maxReplicas: 35
{{ else if eq .Values.env "staging" }}
minReplicas: 1
maxReplicas: 3
{{ end }}
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: django-app
targetCPUUtilizationPercentage: 35
Run Code Online (Sandbox Code Playgroud)
有谁知道这可能是什么原因?
缩放比例基于requestsnot的 % limits。我认为我们应该更改这个答案,因为已接受答案中的示例显示:
limits:
cpu: 1000m
Run Code Online (Sandbox Code Playgroud)
但它targetCPUUtilizationPercentage是基于requests这样的:
requests:
cpu: 1000m
Run Code Online (Sandbox Code Playgroud)
对于每个 Pod 资源指标(如 CPU),控制器从 HorizontalPodAutoscaler 所针对的每个 Pod 的资源指标 API 中获取指标。然后,如果设置了目标利用率值,则控制器会计算利用率值占每个 Pod 中容器上的等效资源请求的百分比。如果设置了目标原始值,则直接使用原始指标值。然后,控制器获取所有目标 Pod 的利用率或原始值(取决于指定的目标类型)的平均值,并生成用于缩放所需副本数量的比率。
| 归档时间: |
|
| 查看次数: |
6545 次 |
| 最近记录: |