Как работает Kubernetes HPA?

Я пытаюсь добавить горизонтальное автоматическое масштабирование подов (HPA) в свои развертывания Kubernetes. Мое приложение состоит из 5 микросервисов, которые соединены между собой. У меня есть один NodePort (сервис Traefik), который отвечает за контроль трафика извне. Вызов представляет собой протокол HTTPS POST, который отправляет файл csv, который обрабатывается приложением. Его можно отправить через командную строку или с помощью веб-приложения (UI). Команда curl будет такой:

curl https://our_app_name -X POST -F "file=@test.csv"

У меня есть следующие вопросы о функциональности HPA:

  1. Как HPA распределяет вызовы между репликами? Может ли Kubernetes выполнять параллельные вычисления, т. Е. Разделять вызов между репликами, или каждый вызов идет только на одну реплику?

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

  3. В спецификациях HPA, например здесь:

  - type: Resource
    resource:
      name: cpu
      target:
       type: Utilization
        averageUtilization: 50

Что это за 50%? Это 50% ЦП модуля или кластера?

Заранее спасибо за помощь!

1 ответ

Решение
  1. Каждый вызов направляется только одной реплике модуля.
  2. Вы можете отправить столько запросов на модуль через вход / службу, но в конечном итоге он достигнет одной из реплик модуля.
  3. с averageUtilization: 50 HorizontalPodAutoscaler попытается убедиться, что каждый pod потреблял примерно 50% своего requested CPU. Это не ЦП узла.
Другие вопросы по тегам