Как проверить данные внешних метрик в Kubernetes? - PullRequest
0 голосов
/ 01 марта 2020

Я использую DirectXMan12 / k8s-prometheus-adapte для pu sh внешний метри c от Прометея до Кубернетеса.

После нажатия внешнего метри c как можно проверить, что данные k8s?

Когда я нажму kubectl, получим --raw /apis/external.metrics.k8s.io/v1beta1 | jq Я получил следующий результат, но после этого у меня нет идеи, как получить фактическое значение метрики

{
  "kind": "APIResourceList",
  "apiVersion": "v1",
  "groupVersion": "external.metrics.k8s.io/v1beta1",
  "resources": [
   {
     "name": "subscription_back_log",
     "singularName": "",
     "namespaced": true,
     "kind": "ExternalMetricValueList",
     "verbs": [
       "get"
     ]
  }]
}

1 Ответ

2 голосов
/ 01 марта 2020

фактическое значение метри c выбирается для каждого экземпляра, например, прикрепленное вами значение метри c равно namespaced: true, при условии, что метри c предназначена для модулей, вы можете получить доступ к фактическим данным в

kubectl get --raw "/apis/external.metrics.k8s.io/v1beta1/namespaces/wanted_namepsace/pods/*/subscription_back_log" | jq '.'

(или вместо имени * укажите модуль)

Если вы хотите, чтобы HPA считывал ваши метри c, конфигурации (например)

apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: your-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: your-pod
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - pods:
      metricName: subscription_back_log
      targetAverageValue: 10000
    type: Pods
...