Позволяет работать HPA- и VPA- автоскейлерам по «любым» метрикам.

Устанавливает в кластер имплементацию Kubernetes resource metrics API, custom metrics API и external metrics API для получения метрик из Prometheus.

Это позволяет:

  • kubectl top брать метрики из Prometheus, через адаптер;
  • использовать autoscaling/v2beta2 для скейлинга приложений (HPA);
  • получать информацию из prometheus средствами API kubernetes для других модулей (Vertical Pod Autoscaler, …).

Модуль позволяет производить скейлинг по следующим параметрам:

  • cpu (pod’а),
  • memory (pod’а),
  • rps (ingress’а) - за 1,5,15 минут (rps_Nm),
  • cpu (pod’а) - за 1,5,15 минут (cpu_Nm) - среднее потребления CPU за N минут,
  • memory (pod’a) - за 1,5,15 минут (memory_Nm) - среднее потребление Memory за N минут,
  • любые Prometheus-метрики и любые запросы на их основе.

Как работает

Данный модуль регистрирует k8s-prometheus-adapter в качестве external API-сервиса, который расширяет возможности Kubernetes API. Когда какому-то из компонентов Kubernetes (VPA, HPA) требуется информация об используемых ресурсах, он делает запрос в Kubernetes API, а тот, в свою очередь, проксирует запрос в адаптер. Адаптер на основе своего конфигурационного файла выясняет, как посчитать метрику и отправляет запрос в Prometheus.