适用于HPA(水平容器自动缩放器)的Kubernetes Prometheus指标``currentCPUUtilizationPercentage''?

时间:2020-08-30 00:54:38

标签: kubernetes prometheus prometheus-operator hpa

在使用CoreOS Prometheus Operator抓取所有标准集群指标的Kubernetes集群上,哪种Prometheus指标会向我显示简单HPA(水平吊舱自动缩放器)的currentCPUUtilizationPercentage值?

如果我设置一个简单的hpa,如:

$ kubectl autoscale deployment php-apache --cpu-percent=30 --min=3 --max=10

然后,如果我做kubectl get hpa php-apache -o yaml,我会看到类似的东西:

spec:
  maxReplicas: 10
  minReplicas: 3
  targetCPUUtilizationPercentage: 30
  ...
status:
  currentCPUUtilizationPercentage: 28
  currentReplicas: 9
  desiredReplicas: 9
  ...

我想在普罗米修斯那里看到currentCPUUtilizationPercentage。我已经做了很多Prometheus查询来寻找这个。

我已经搜索了所有标记为{hpa="php-apache"}的指标,并且看到了很多hpa指标,但没有找到我正在寻找的指标。我可以看到kube_hpa_spec_target_metric设置为30,并且可以看到诸如kube_hpa_status_condition之类的当前状态指标,但看不到我想要查看的当前cpu指标值。

我已经搜索了所有标记为{metric_name="cpu"}的指标,只看到了kube_hpa_spec_target_metric

我已经搜索了所有标记为{container="my-container-name"}{pod=~"my-pod-prefix.*"}的与容器和容器相关的指标,我看到了一些与CPU相关的指标,例如container_cpu_usage_seconds_totalcontainer_spec_cpu_quota,但没有相似之处或没有似乎可以用来计算我正在寻找的currentCPUUtilizationPercentage值?

仅供参考,它位于Kubernetes 1.17.x上,并使用最新版本的CoreOS Prometheus Operator。

1 个答案:

答案 0 :(得分:2)

如果我没记错的话,currentCPUUtilizationPercentage是HPA的k8内部指标,没有直接暴露为可以使用Prometheus进行废弃的指标。 参见https://github.com/kubernetes/community/blob/master/contributors/design-proposals/autoscaling/horizontal-pod-autoscaler.md#autoscaling-algorithm

您可能可以废弃当前CPUUtilizationPercentage指标的组件并创建自定义指标以在Prometheus中查看它。