首页 > 解决方案 > 使用 Prometheus Adapter 来自其他部署的 Kubernetes HPA 自定义指标

问题描述

是否可以根据 Prometheus 中从另一个 pod 而不是正在扩展的 pod 中抓取的指标扩展pod

记者 - 向 Prometheus 工人报告指标的
pod - 应根据该指标进行缩放的 pod

在普罗米修斯中,我有从reporter-1 pod中抓取的指标

custom_metric{endpoint="http",job="reporter",namespace="ns1",pod="reporter-1",service="reporter"} 1

我还在普罗米修斯中创建了虚拟指标(pod=worker):

custom_metric{endpoint="http",job="reporter",namespace="ns1",pod="worker-1",service="reporter"} 2

我想使用该指标 (1) 来扩展 worker pod

api自定义指标:

kubectl get --raw="/apis/custom.metrics.k8s.io/v1beta1/namespaces/ns1/pods/*/custom_metric" | jq .

输出:

{
  "kind": "MetricValueList",
  "apiVersion": "custom.metrics.k8s.io/v1beta1",
  "metadata": {
    "selfLink": "/apis/custom.metrics.k8s.io/v1beta1/namespaces/ns1/pods//custom_metric"
  },
  "items": [
    {
      "describedObject": {
        "kind": "Pod",
        "namespace": "ns1",
        "name": "worker-1",
        "apiVersion": "/v1"
      },
      "metricName": "custom_metric",
      "timestamp": "2021-10-06T16:25:26Z",
      "value": "2",
      "selector": null
    }
  ] 
}

这是错误的指标!我期待得到:

“值”:来自记者 1 的“1”

来自 HPA:

spec:
  maxReplicas: 5
  minReplicas: 1
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: worker

来自 promotheus afapter 配置图:

rules:
- seriesQuery: custom_metric{namespace="ns1",service="reporter}
  seriesFilters: []
  resources:
    overrides:
      namespace:
        resource: namespace
      pod:
        resource: pod
  name:
    matches: custom_metric
    as: custom_metric
  metricsQuery: custom_metric{namespace="ns1",service="reporter}    

标签: kubernetesprometheus

解决方案


推荐阅读