![](/img/trans.png)
[英]Horizontal Pod Autoscaler with custom metrics from Prometheus with percentiles for CPU usage
[英]Horizontal Pod Autoscaler (HPA) custom metrics with Prometheus Adapter (How are units defined?)
我正在使用来自应用程序的自定义指标测试 HPA,并使用 Prometheus 适配器暴露给 K8s。
我的应用程序公开了一个“jobs_executing”自定义指标,该指标是 golang 中的数值指标(prometheus-client),公开了应用程序(pod)执行的作业数量。
现在为了在 hpa 中解决这个问题,这里是我的 HPA 配置的样子:
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: myapp
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: myapp
minReplicas: 1
maxReplicas: 10
metrics:
- type: Pods
pods:
metric:
name: jobs_executing
target:
type: AverageValue
averageValue: 5
我希望自动缩放器在平均没有时缩放我的 pod。 整个 pod 执行的作业数等于“5”。 这有效,但有时 HPA 配置显示如下值:
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
my-autoscaler Deployment/my-scaling-sample-app 7700m/5 1 10 10 38m
这里的目标显示为“7700m/5”,即使平均没有。 执行的工作总数为 7.7。 这使得 HPA 只是横向扩展。 我不明白为什么将“7700m”放在当前目标值中”?
我的问题是,是否有一种方法可以在 HPA 中定义一个不会将正常整数与 7700m(CPU 单元?)
或者我错过了什么? 谢谢
从文档:
HorizontalPodAutoscaler 和指标 API 中的所有指标都使用 Kubernetes 中称为数量的特殊整数表示法指定。 例如,数量 10500m 将以十进制表示法写为 10.5。 如果可能,指标 API 将返回没有后缀的整数,否则通常以毫单位返回数量。 这意味着您可能会看到您的指标值在 1 和 1500m 之间波动,或者在以十进制表示法书写时在 1 和 1.5 之间波动。
因此,您似乎无法调整 HPA 使用的度量单位,即通用数量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.