Позволяет работать HPA- и VPA- автоскейлерам по «любым» метрикам.
Устанавливает в кластер имплементацию Kubernetes resource metrics API, custom metrics API и external metrics API для получения метрик из Prometheus.
Это позволяет:
kubectl top
брать метрики из Prometheus, через адаптер;- использовать CR версии autoscaling/v2 для масштабирования приложений (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.