Как работает Kubernetes HPA?
Я пытаюсь добавить горизонтальное автоматическое масштабирование подов (HPA) в свои развертывания Kubernetes. Мое приложение состоит из 5 микросервисов, которые соединены между собой. У меня есть один NodePort (сервис Traefik), который отвечает за контроль трафика извне. Вызов представляет собой протокол HTTPS POST, который отправляет файл csv, который обрабатывается приложением. Его можно отправить через командную строку или с помощью веб-приложения (UI). Команда curl будет такой:
curl https://our_app_name -X POST -F "file=@test.csv"
У меня есть следующие вопросы о функциональности HPA:
Как HPA распределяет вызовы между репликами? Может ли Kubernetes выполнять параллельные вычисления, т. Е. Разделять вызов между репликами, или каждый вызов идет только на одну реплику?
Может ли реплика принимать участие более чем в одном звонке одновременно?
В спецификациях HPA, например здесь:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50
Что это за 50%? Это 50% ЦП модуля или кластера?
Заранее спасибо за помощь!
1 ответ
- Каждый вызов направляется только одной реплике модуля.
- Вы можете отправить столько запросов на модуль через вход / службу, но в конечном итоге он достигнет одной из реплик модуля.
- с
averageUtilization: 50
HorizontalPodAutoscaler попытается убедиться, что каждыйpod
потреблял примерно50%
своегоrequested
CPU
. Это не ЦП узла.