[英]Unable to retrieve custom metrics from prometheus-adapter
我正在嘗試使用 HPA + 自定義指標擴展在我的樹莓派 kubernetes 集群上運行的應用程序 pod 之一,但遇到了幾個問題,盡管閱讀了https://github.com/DirectXMan12/k8s-prometheus-adapter上的文檔和過去兩天的故障排除,我仍然難以理解為什么會發生一些問題。
首先,我構建了一個與 ARM 兼容的 k8s-prometheus-adapter 映像並使用 helm 安裝它。 我可以通過檢查 pod 日志來確認它是否正常運行。
我還設置了一個腳本,將樹莓派溫度發送到 pushgateway,我可以通過這個 Prometheus 查詢node_temp
進行查詢,它將返回以下系列
node_temp{job="kube4"} 42
node_temp{job="kube1"} 44
node_temp{job="kube2"} 39
node_temp{job="kube3"} 40
現在我希望能夠使用上述溫度值作為實驗來擴展我的一個應用程序吊艙,以更好地了解它是如何工作的。
下面是我的 k8s-prometheus-adapter helm values.yml
文件
image:
repository: jaanhio/k8s-prometheus-adapter-arm
tag: latest
logLevel: 7
prometheus:
url: http://10.17.0.12
rules:
default: false
custom:
- seriesQuery: 'etcd_object_counts'
resources:
template: <<.Resource>>
name:
as: "etcd_object"
metricsQuery: count(etcd_object_counts)
- seriesQuery: 'node_temp'
resources:
template: <<.Resource>>
name:
as: "node_temp"
metricsQuery: count(node_temp)
通過 helm 安裝后,我運行kubectl get apiservices
並可以看到列出的v1beta1.custom.metrics.k8s.io
。
然后我運行kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1 | jq
kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1 | jq
並得到以下
{
"kind": "APIResourceList",
"apiVersion": "v1",
"groupVersion": "custom.metrics.k8s.io/v1beta1",
"resources": [
{
"name": "jobs.batch/node_temp",
"singularName": "",
"namespaced": true,
"kind": "MetricValueList",
"verbs": [
"get"
]
},
{
"name": "jobs.batch/etcd_object",
"singularName": "",
"namespaced": true,
"kind": "MetricValueList",
"verbs": [
"get"
]
},
]
然后我嘗試使用kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1/jobs/*/node_temp
查詢已注冊的 node_temp 指標的值,但得到以下響應Error from server (InternalError): Internal error occurred: unable to list matching resources
問題:
為什么 node_temp 指標與jobs.batch
資源類型相關聯?
為什么我無法通過kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1/jobs/*/node_temp
檢索指標的值?
確定查詢路徑的明確方法是什么? 例如/apis/custom.metrics.k8s.io/v1beta1/jobs/*/node_temp
我有點反復試驗,直到我看到一些回應。 我還在查詢中看到了一些其他帶有命名空間的路徑,例如/apis/custom.metrics.k8s.io/v1beta1/namespaces/*/metrics/foo_metrics
任何幫助和建議將不勝感激!
- 為什么 node_temp 指標與 jobs.batch 資源類型相關聯?
它選擇附加到普羅米修斯指標的標簽並嘗試解釋它們,在這種情況下,你顯然有“job-kube4”
- 為什么我無法通過 kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1/jobs/*/node_temp 檢索指標的值?
指標是命名空間的,請參閱“namespaced:true”,因此您需要“/apis/custom.metrics.k8s.io/v1beta1/namespaces/ /jobs/ /node_temp”
- 確定查詢路徑的明確方法是什么? 例如 /apis/custom.metrics.k8s.io/v1beta1/jobs/ /node_temp 我有點反復試驗,直到我看到一些回應。 我還在查詢中看到了一些其他帶有命名空間的路徑,例如 /apis/custom.metrics.k8s.io/v1beta1/namespaces/ /metrics/foo_metrics
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.