繁体   English   中英

使用 Prometheus Adapter 的 Horizo​​ntal Pod Autoscaler (HPA) 自定义指标(如何定义单位?)

[英]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 单元?)

或者我错过了什么? 谢谢

从文档:

https://kubernetes.io/docs/tasks/run-application/horizo​​ntal-pod-autoscale-walkthrough/#appendix-quantities

Horizo​​ntalPodAutoscaler 和指标 API 中的所有指标都使用 Kubernetes 中称为数量的特殊整数表示法指定。 例如,数量 10500m 将以十进制表示法写为 10.5。 如果可能,指标 API 将返回没有后缀的整数,否则通常以毫单位返回数量。 这意味着您可能会看到您的指标值在 1 和 1500m 之间波动,或者在以十进制表示法书写时在 1 和 1.5 之间波动。

因此,您似乎无法调整 HPA 使用的度量单位,即通用数量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM