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

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

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

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

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

  • CPU (пода);
  • память (пода);
  • rps (Ingress’а) — за 1, 5, 15 минут (rps_Nm);
  • CPU (пода) — за 1, 5, 15 минут (cpu_Nm) — среднее потребление CPU за N минут;
  • память (пода) — за 1, 5, 15 минут (memory_Nm) — среднее потребление памяти за N минут;
  • любые Prometheus-метрики и любые запросы на их основе.

Как работает

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