使用 Prometheus Adapter 的 Horizontal Pod Autoscaler (HPA) 自定义指标(如何定义单位?)
Horizontal Pod Autoscaler (HPA) custom metrics with Prometheus Adapter (How are units defined?)
我正在使用来自应用程序的自定义指标测试 HPA,并使用 Prometheus-adapter 暴露给 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
我希望自动缩放器在平均 no 时缩放我的 pod。总体 pods 执行的作业数等于“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 单位?)
混淆
或者我错过了什么?谢谢
来自文档:
All metrics in the HorizontalPodAutoscaler and metrics APIs are specified using a special whole-number notation known in Kubernetes as a quantity. For example, the quantity 10500m would be written as 10.5 in decimal notation. The metrics APIs will return whole numbers without a suffix when possible, and will generally return quantities in milli-units otherwise. This means you might see your metric value fluctuate between 1 and 1500m, or 1 and 1.5 when written in decimal notation.
所以您似乎无法调整 HPA 使用的测量单位,即通用数量。
我正在使用来自应用程序的自定义指标测试 HPA,并使用 Prometheus-adapter 暴露给 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
我希望自动缩放器在平均 no 时缩放我的 pod。总体 pods 执行的作业数等于“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 单位?)
混淆或者我错过了什么?谢谢
来自文档:
All metrics in the HorizontalPodAutoscaler and metrics APIs are specified using a special whole-number notation known in Kubernetes as a quantity. For example, the quantity 10500m would be written as 10.5 in decimal notation. The metrics APIs will return whole numbers without a suffix when possible, and will generally return quantities in milli-units otherwise. This means you might see your metric value fluctuate between 1 and 1500m, or 1 and 1.5 when written in decimal notation.
所以您似乎无法调整 HPA 使用的测量单位,即通用数量。