Как выполнить HorizontalPodAutoscaling в Kubernetes на основе времени отклика (пользовательская метрика) с помощью адаптера Prometheus? - PullRequest
0 голосов
/ 06 октября 2019

Привет всем,

У меня есть кластер на основе kubeadm , имеющий 1 мастера и 2 рабочих. Я уже реализовал встроенный HorizontalPodAutoscaling (на основе cpu_utilization и памяти), и теперь я хочу выполнить автоматическое масштабирование на основе пользовательских метрик ( время отклика в моем случае).

Я использую Адаптер Prometheus для пользовательских метрик. И я не смог найти метрики с именем response_time в Prometheus.

  1. IsЕсть ли в Prometheus метрика, которая масштабирует приложение в зависимости от времени отклика и как оно называется?

  2. Нужно ли мне редактировать алгоритм горизонтального автоматического масштабирования по умолчанию или мне нужно будет сделатьалгоритм автоматического масштабирования с нуля, который может масштабировать мое приложение на основе времени отклика?

1 Ответ

0 голосов
/ 08 октября 2019

Прометей имеет только 4 метрических типов : Счетчик , Датчик , Гистограмма и Сводка .

Я думаю, Гистограмма - это то, что вам нужно

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

Гистограмма с именем основной метрики <basename> предоставляет несколько временных рядов во время очистки:

  • совокупных счетчиков для сегментов наблюдениявыставлено как <basename>_bucket{le="<upper inclusive bound>"}
  • общая сумма всех наблюдаемых значений, выставлено как <basename>_sum
  • счет событий, которые былинаблюдалось, выставлено как <basename>_count (идентично <basename>_bucket{le="+Inf"} выше)

1.

Существует вопрос о переполнении стека , где вы можетеполучить запрос на задержку (время ответа), поэтому я думаю, что это может быть полезно для вас.

2.

Не знаю, правильно ли я вас понимаю, но если вы хотите отредактировать HPA , вы можете отредактировать файл yaml, удалить предыдущий HPA и создать новый. один вместо.

kubectl delete hpa <name.yaml>
kubectl apply -f <name.yaml>

Есть хорошая статья о Автоматическое масштабирование по пользовательским метрикам с пользовательскими метриками Прометея.

...