Установка Prometheus Adapter

Prometheus Adapter — это компонент, который связывает собранные сервисом Prometheus метрики с механизмом горизонтального автоматического масштабирования подов (Horizontal pod autoscaler — HPA) в Kubernetes.

Prometheus Adapter обеспечивает доступ к пользовательским и внешним метрикам через Kubernetes API. Это позволяет автоматически масштабировать приложения на основе любых метрик из Prometheus: количества запросов в секунду, накопленных сообщений в очереди RabbitMQ, задержек ответа и других пользовательских индикаторов.

Установка Prometheus Adapter не требуется, если вы используете:

  • KEDA, т. к. в это дополнение уже встроен необходимый компонент для работы с метриками RabbitMQ;
  • Deckhouse с его встроенным модулем мониторинга. В этом случае вы можете настроить ресурс Deckhouse ServiceMetric.  

В статье рассмотрим, как установить и настроить Prometheus Adapter в кластере.

Перед началом установки убедитесь, что у вас установлены средства мониторинга и мониторинг баз данных (RabbitMQ).

Установка дополнения состоит из нескольких этапов:

  1. Скачивание Helm-чарта и конфигурационного файла.
  2. Заполнение конфигурационного файла.
  3. Установка с помощью Helm в Kubernetes-кластер.
  4. Настройка ELMA365 для работы с Prometheus Adapter.

Важно: если вы используете Prometheus Adapter вместе с Prometheus Operator, настройте их на один источник данных Prometheus для сбора метрик приложений.

Шаг 1. Скачивание Helm-чарта и конфигурационного файла

Для установки через интернет получите конфигурационный файл values-prometheus-adapter.yaml, выполнив команду:

helm repo add elma365 https://charts.elma365.tech
helm repo update
helm show values elma365/prometheus-adapter > values-prometheus-adapter.yaml

 

Получение конфигурационного файла для установки в закрытом контуре без доступа в интернет

Шаг 2. Заполнение конфигурационного файла

Заполните конфигурационный файл values-prometheus-adapter.yaml для установки Prometheus Adapter.

Важно: проверьте параметр url: http://monitoring-kube-prometheus-prometheus.monitoring.svc. Он должен указывать на ваш сервис Prometheus.

 

Пример конфигурационного файла для установки Prometheus Adapter

 

Заполнение параметров подключения к приватному registry для установки в закрытом контуре без доступа в интернет

 

Шаг 3. Установка с помощью Helm в Kubernetes-кластер чарта prometheus-adapter

Установите чарт prometheus-adapter в пространстве имён monitoring:

  • для установки через интернет используйте команду:

helm upgrade --install -n monitoring prometheus-adapter elma365/prometheus-adapter -f values-prometheus-adapter.yaml

  • для установки без доступа в интернет перейдите в каталог с загруженным чартом и выполните команду:

helm upgrade --install prometheus-adapter ./prometheus-adapter -f values-prometheus-adapter.yaml -n monitoring

Шаг 4. Настройка ELMA365 для работы с Prometheus Adapter

Prometheus Adapter позволяет механизму HPA автоматически масштабировать поды приложения ELMA365 в зависимости от нагрузки на очередь сообщений RabbitMQ.

Чтобы использовать метрики RabbitMQ для HPA, в приложении ELMA365 активируйте параметры в глобальной конфигурации. Для этого отредактируйте файл values-elma365.yaml, используемый при установке.

Начало внимание

Перед редактированием файла values-elma365.yaml создайте его резервную копию, поскольку некорректная настройка параметров может привести к сбоям в работе приложения ELMA365.

Конец внимание

Настройте следующие параметры:

elma365:
  global:
    monitoring:
      externalRmqMetrics: true       # Включение использования метрик RabbitMQ для HPA
      rmqExporterVhost: "elma365"    # Указание vhost для экспортера метрик HPA (по умолчанию "elma365")
    autoscaling:
      rabbitmqQueueLength: 500       # порог длины очереди RabbitMQ для автомасштабирования.

 

Подробнее о всех параметрах конфигурационного файла values-elma365.yaml, а также работе с ними читайте в статье «Изменение параметров ELMA365 Enterprise».

 

Настроить ресурс Deckhouse ServiceMetric для автомасштабирования ELMA365

Если вы используете Deckhouse со встроенным модулем мониторинга, для автомасштабирования подов в ELMA365 можно применять метрики очередей RabbitMQ. Они собираются с помощью ресурса Deckhouse ServiceMetric. Механизм HPA будет использовать эти метрики для принятия решений о масштабировании.

Чтобы создать ресурс ServiceMetric:

  1. Сохраните манифест в файл, например rabbitmq-metrics.yaml:

 

apiVersion: deckhouse.io/v1beta1
kind: ServiceMetric
metadata:
  name: rabbitmq-queue-messages
spec:
  query: |
    sum(rabbitmq_queue_messages{<<.LabelMatchers>>, queue!=""}) by (queue)
---
apiVersion: deckhouse.io/v1beta1
kind: ServiceMetric
metadata:
  name: rabbitmq-queue-messages-postman
spec:
  query: |
    sum(rabbitmq_queue_messages{<<.LabelMatchers>>, queue="_postman._new_messages"}) by (queue)

  1. Примените манифест командой:

kubectl apply -f rabbitmq-metrics.yaml