HPA无法获取现有的自定义指标?

时间:2019-09-29 01:33:38

标签: kubernetes monitoring grafana prometheus autoscaling

我正在使用mongodb-exporter通过prometheus存储/查询指标。我已经设置了一个自定义指标服务器并为该服务器存储值。

这是prometheus-exportercustom-metric-server兼容的证据。

查询:

kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1/namespaces/monitoring/pods/*/mongodb_mongod_wiredtiger_cache_bytes"

结果:

{"kind":"MetricValueList","apiVersion":"custom.metrics.k8s.io/v1beta1","metadata":{"selfLink":"/apis/custom.metrics.k8s.io/v1beta1/namespaces/monitoring/pods/%2A/mongodb_mongod_wiredtiger_cache_bytes"},"items":[{"describedObject":{"kind":"Pod","namespace":"monitoring","name":"mongo-exporter-2-prometheus-mongodb-exporter-68f95fd65d-dvptr","apiVersion":"/v1"},"metricName":"mongodb_mongod_wiredtiger_cache_bytes","timestamp":"TTTTT","value":"0"}]}

在我的情况下,当我从mongo导出器为此自定义指标创建hpa时,hpa会向我返回此错误:

failed to get mongodb_mongod_wiredtiger_cache_bytes utilization: unable to get metrics for resource mongodb_mongod_wiredtiger_cache_bytes: no metrics returned from resource metrics API

我的案件的主要问题是什么?我检查了所有配置,流程看起来还不错,但是我的错误在哪里?

帮助

谢谢:)

1 个答案:

答案 0 :(得分:1)

您在评论中写道,您启用了external.metrics,但是在原始问题中,您遇到了custom.metrics的问题

简而言之:

  • metrics仅支持CPU或内存之类的基本指标。
  • custom.metrics允许您将基本指标扩展到所有Kubernetes对象(http_requests,pod数量等)。
  • external.metrics允许收集不是Kubernetes对象的指标:
  

外部指标可让您根据任何条件自动扩展群集   监控系统中可用的指标。只需提供一个指标   带有名称和选择器的代码块,如上所述,并使用“外部”指标   类型而不是对象

有关详细说明,请检查this doc

Minikube

要验证是否启用了custom.metrics,您需要执行以下命令并检查是否可以看到任何metrics-server...窗格。

$ kubectl get pods -n kube-system
...
metrics-server-587f876775-9qrtc    1/1     Running   4          5d1h

第二种方法是检查minikube是否通过{p>

metrics-server

如果已禁用,请执行

$ minikube addons list
...
- metrics-server: enabled

GKE

当前在GKE,$ sudo minikube addons enable metrics-server ✅ metrics-server was successfully enabled heapster默认打开,但默认情况下不支持metrics-server。 您必须安装custom.metricsprometheus adapter

Kubeadm

Kubeadm开头不包含stackdriverheapster。为了易于安装,您可以使用this YAML

稍后您必须安装metrics server

应用custom.metrics

prometheus adapterMinikubeKubeadm都是相同的。

应用GKE的最简单方法是通过custom.metrics安装prometheus adapter

安装头盔后,您将看到注释:

Helm

作为附加信息,您可以使用NOTES: my-release-prometheus-adapter has been deployed. In a few minutes you should be able to list metrics using the following command(s): kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1 获得更多用户友好的输出。

jq