HPA не может получить метрики от Прометея в Куберне - PullRequest
0 голосов
/ 19 июня 2019

У меня есть двухузловой кластер Kubernetes, т.е. один главный узел и два рабочих узла.Для целей мониторинга я развернул Прометей и Графану.Теперь я хочу автоматически масштабировать модули в зависимости от загрузки процессора.Но даже после настройки Grafana и Prometheus я получаю следующую ошибку: ---

Name:                                                  php-apache
Namespace:                                             default
Labels:                                                <none>
Annotations:                                           <none>
CreationTimestamp:                                     Mon, 17 Jun 2019 12:33:01 +0530
Reference:                                             Deployment/php-apache
Metrics:                                               ( current / target )
  resource cpu on pods  (as a percentage of request):  <unknown> / 50%
Min replicas:                                          1
Max replicas:                                          10
Deployment pods:                                       1 current / 0 desired
Conditions:
  Type           Status  Reason                   Message
  ----           ------  ------                   -------
  AbleToScale    True    SucceededGetScale        the HPA controller was able to get the target's current scale
  ScalingActive  False   FailedGetResourceMetric  the HPA was unable to compute the replica count: unable to get metrics for resource cpu: unable to fetch metrics from resource metrics API: the server could not find the requested resource (get pods.metrics.k8s.io)
Events:
  Type     Reason                   Age                      From                       Message
  ----     ------                   ----                     ----                       -------
  Warning  FailedGetResourceMetric  112s (x12408 over 2d4h)  horizontal-pod-autoscaler  unable to get metrics for resource cpu: unable to fetch metrics from resource metrics API: the server could not find the requested resource (get pods.metrics.k8s.io)

Может кто-нибудь сообщить мне, почему Kubernetes не получает метрики от Prometheus?

Ответы [ 3 ]

1 голос
/ 19 июня 2019

Kubernetes извлекает метрики из API metrics.k8s.io (обычно реализуемого с помощью metrics-server, который может быть установлен отдельно) или из API custom.metrics.k8s.io (который может быть метрикой любого типа и обычно предоставляется третьими сторонами). Чтобы использовать Prometheus в HPA для kubernetes, необходимо установить Prometheus Adapter для API пользовательских метрик.

Пошаговое руководство по настройке можно найти здесь .

0 голосов
/ 26 июня 2019

heapster теперь развращен: https://github.com/kubernetes-retired/heapster

Чтобы включить автоматическое масштабирование в вашем кластере, вы можете использовать HPA (горизонтальный модуль автоматического масштабирования) и установить сервер метрик для проверки всех метрик.

Для установки сервера метрик на kubernetes вы также можете следовать этому руководству:

amazon : https://docs.aws.amazon.com/eks/latest/userguide/metrics-server.html
https://github.com/kubernetes-incubator/metrics-server
https://medium.com/@cagri.ersen/kubernetes-metrics-server-installation-d93380de008
0 голосов
/ 26 июня 2019

Вам не нужны пользовательские метрики, чтобы использовать HPA для автоматического масштабирования модулей на основе их загрузки ЦП.

Как упоминалось ранее @ Blokje5, вам просто нужно установить 'kube-state-metrics'.

Самый удобный способ сделать это с помощью выделенной таблицы управления ( kube-state-metrics ).

Подсказка: используйте параметры переопределения с помощью 'helm install', чтобы создать объект ServiceMonitor для модуля "kube-state-metrics", чтобы Прометей мог обнаружить новую цель для очистки метрик, например:

helm install stable/kube-state-metrics --set prometheus.monitor.enabled=true

Примечание: Обратите внимание на «serviceMonitorSelector», определенный в существующем объекте / конфигурации ресурса Prometheus, чтобы он соответствовал определению ServiceMonitor для «kube-state-metrics».Это делается для того, чтобы метрики Стручков были доступны в консоли Prometheus.

...