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

Я новичок в автомасштабировании K8s. У меня есть приложение с отслеживанием состояния. Я пытаюсь выяснить, какой метод автомасштабирования мне подходит. Согласно документации:

если для модулей не установлены правильные ресурсы, компонент VPA «Updater» уничтожает их, чтобы их контроллеры могли воссоздать их с помощью обновленных запросов.

Я хочу знать время простоя для уничтожения существующего модуля и создания новых. Или, по крайней мере, как я могу измерить это для своего приложения?

Я сравниваю подходы HPA и VPA для своего приложения.

следующий вопрос: сколько времени требуется в HPA, чтобы создать новый модуль при масштабировании?




Ответы (1)


Здесь нужно прояснить несколько вещей:

  • VPA не создает узлы, используется Cluster Autoscaler для этого. Вертикальный модуль автомасштабирования модулей выделяет больше (или меньше) ЦП и памяти существующим модулям, а CA масштабирует кластеры узлов в зависимости от количества ожидающих модулей.

  • Использование HPA, VPA, CA или их комбинации зависит от потребностей вашего приложения. Эксперименты - самый надежный способ найти, какой вариант лучше всего подходит для вас, поэтому может потребоваться несколько попыток, чтобы найти правильную настройку. HPA и VPA зависят от показателей и некоторых исторических данных. CA рекомендуется, если вы хорошо понимаете потребности ваших подов и контейнеров.

  • HPA и VPA не должны использоваться вместе для оценки ЦП / памяти. Однако VPA можно использовать для оценки ЦП или памяти, тогда как HPA можно использовать для оценки внешних показателей (например, количества HTTP-запросов или количества активных пользователей и т. Д.). Также вы можете использовать VPA вместе с CA.

  • Трудно оценить точное время, необходимое VPA для настройки и перезапуска модулей, а также для масштабирования HPA. Разница между лучшим и худшим сценариями зависит от многих факторов и может привести к значительному разрыву во времени. Чтобы это оценить, нужно полагаться на показатели и наблюдения.

  • Сервер метрик Kubernetes собирает метрики ресурсов из Kubelets и представляет их в Kubernetes apiserver через Metrics API для использования с помощью Horizontal Pod Autoscaler и Vertical Pod Autoscaler.

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

РЕДАКТИРОВАТЬ:

Масштабирование - это операция, чувствительная ко времени. Вы должны учитывать среднее время, необходимое вашим модулям для расширения. Два примера сценария:

  1. В лучшем случае - 4 минуты:
  • 30 секунд: обновленные значения целевых показателей: 30-60 секунд
  • 30 секунд: HPA проверяет значения метрик: 30 секунд
  • ‹2 секунды: поды созданы и переходят в состояние ожидания - 1 секунда
  • ‹2 секунды: CA видит ожидающие pod'ы и запускает вызовы для обеспечения узлов - 1 секунда
  • 3 минуты: облачный провайдер предоставляет узлы, и K8 ждет их готовности: до 10 минут (зависит от нескольких факторов)
  1. (Разумно) Худший сценарий - 12 минут:
  • 60 секунд: значения целевых показателей обновлены.
  • 30 секунд: HPA проверяет значения метрик
  • ‹2 секунды: поды созданы и переходят в состояние ожидания
  • ‹2 секунды: CA видит ожидающие pod'ы и запускает вызовы для инициализации узлов
  • 10 минут: облачный провайдер подготавливает узлы, и K8 ждет их, пока они не будут готовы, минут (зависит от множества факторов, таких как задержка провайдера, задержка ОС, инструменты ограничения загрузки и т. Д.)

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

person Wytrzymały Wiktor    schedule 31.05.2021
comment
Привет @SamiraM. Это ответ на ваш вопрос? - person Wytrzymały Wiktor; 01.06.2021
comment
в первом пункте вы сказали: VPA не создает узлы, для этого используется Cluster Autoscaler ... но, как я уже упоминал в своем вопросе, в git of VPA упоминалось, если запрошенный ресурс значительно отличается от новой рекомендации, VPA вытеснит pod и создайте новый. ссылка - person SamiraM; 01.06.2021
comment
Привет @SamiraM. Спасибо за ваш ответ. То, что вы сказали, правильно, но я обращался к утверждению из заголовка: Сколько времени в простое вертикального автомасштабирования Pod для создания нового узла, что не является тем, за что отвечает VPA, поскольку он масштабирует ресурсы для Pod а не узлы. Надеюсь, теперь стало понятнее. - person Wytrzymały Wiktor; 02.06.2021
comment
ой извините, вы правы. это была опечатка, исправляю. Итак, есть ли у вас опыт задержки масштабирования в VPA и HPA? - person SamiraM; 02.06.2021
comment
Привет @SamiraM. Я отредактировал свой ответ, чтобы лучше ответить на ваш вопрос здесь. - person Wytrzymały Wiktor; 07.06.2021
comment
Привет @SamiraM. Это ответ на ваш вопрос? - person Wytrzymały Wiktor; 09.06.2021