【发布时间】:2020-08-27 04:21:00
【问题描述】:
我正在尝试使用 HPA + 自定义指标扩展在我的树莓派 kubernetes 集群上运行的一个应用程序 pod,但遇到了几个问题,尽管阅读了 https://github.com/DirectXMan12/k8s-prometheus-adapter 上的文档并在过去 2 天进行了故障排除,我我仍然难以理解为什么会发生一些问题。
首先,我构建了一个与 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
现在我希望能够使用上述温度值作为实验来扩展我的一个应用程序 pod,以更好地了解它是如何工作的。
下面是我的 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 并得到以下结果
{
"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
任何帮助和建议将不胜感激!
【问题讨论】:
-
你解决了吗?
标签: kubernetes monitoring prometheus kubernetes-helm