Могу ли я использовать метрики из одного приложения для автоматического масштабирования другого?

В настоящее время у меня есть служба, работающая в моем кластере kubernetes, которая экспортирует мои показатели в prometheus, который отслеживает мой кластер и службы.

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

Возможно ли это сделать?

Заранее спасибо!


person Yonah Dissen    schedule 08.10.2018    source источник


Ответы (3)


Мне удалось заставить это работать!

Вы можете выбрать цель масштабирования в одном параметре, а в разделе метрик выбрать цель другого сервиса.

Пример yaml

kind: HorizontalPodAutoscaler
apiVersion: autoscaling/v2beta1
metadata:
  name: my-app-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-app
  minReplicas: 1
  maxReplicas: 5
  metrics:
  - type: Object
    object:
      target:
        kind: Service
        name: app-that-generates-metrics
      metricName: my-metric
      targetValue: 10
person Yonah Dissen    schedule 30.10.2018
comment
Была ли метрика cpu/memory или network или общее пользовательское значение из app-that-generates-metrics? - person weshouman; 03.02.2020
comment
Пользовательское значение из приложения - person Yonah Dissen; 04.02.2020

Я никогда не тестировал то, что вы хотите сделать, но здесь у вас есть руководство по масштабированию модуля с помощью пользовательских метрик: https://docs.bitnami.com/kubernetes/how-to/configure-autoscaling-custom-metrics/

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

person night-gold    schedule 08.10.2018
comment
Я попробую и посмотрю, может ли hpa yaml ссылаться на другой сервис. - person Yonah Dissen; 08.10.2018
comment
по какой-то причине в присланном вами руководстве hpa не распознает количество текущих http-запросов, хотя prometheus их собирает - person Yonah Dissen; 10.10.2018
comment
Это как-то связано с тем, что вы используете другой стручок? Таким образом, метрика не относится к вашему HPA? - person night-gold; 10.10.2018

Для начала работы с custom HPA нужно установить на кластер некоторые вещи:

  1. Включить уровень агрегатора Kubernetes
  2. Начните использовать metrics-server (вместо heapster);
person Denis    schedule 08.10.2018