1

在使用 CoreOS Prometheus Operator 抓取所有标准集群指标的 Kubernetes 集群上,什么 Prometheus 指标可以显示currentCPUUtilizationPercentage简单 HPA(水平 pod 自动缩放器)的价值?

如果我设置一个简单的 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

我搜索了所有标记的容器和 pod 相关指标{container="my-container-name"}{pod=~"my-pod-prefix.*"}并且我看到了几个与 cpu 相关的指标,例如container_cpu_usage_seconds_totalabnd container_spec_cpu_quota,但没有类似的指标,或者似乎没有任何指标可以用于计算currentCPUUtilizationPercentage我正在寻找的值?

仅供参考,这是在 Kubernetes 1.17.x 上并使用最新版本的 CoreOS Prometheus Operator。

4

1 回答 1

2

如果我没记错的话 currentCPUUtilizationPercentage 是 HPA 的 k8 内部指标,而不是直接作为指标公开,您可以使用 Prometheus抓取。https://github.com/kubernetes/community/blob/master/contributors/design-proposals/autoscaling/horizo​​ntal-pod-autoscaler.md#autoscaling-algorithm

您可能可以抓取currentCPUUtilizationPercentage 指标的组件并创建自定义指标以在 Prometheus 中查看它。

于 2020-08-30T01:18:37.017 回答