Для как stateless, так и stateful приложений VerticalPodAutoscaler (VPA) автоматически рекомендует и при необходимости применяет более подходящие лимиты ресурсов CPU и памяти на основе ваших бизнес-требований, обеспечивая достаточное количество ресурсов для подов и повышая эффективность использования ресурсов кластера.
Вы можете создать VerticalPodAutoscaler для рекомендации или автоматического обновления запросов и лимитов ресурсов CPU и памяти для ваших подов на основе их исторических шаблонов использования.
После создания VerticalPodAutoscaler платформа начинает мониторить использование ресурсов CPU и памяти подами. Когда собирается достаточное количество данных, VerticalPodAutoscaler рассчитывает рекомендуемые значения ресурсов на основе наблюдаемых шаблонов использования. В зависимости от настроенного режима обновления VPA может либо автоматически применять эти рекомендации, либо просто предоставлять их для ручного применения.
VPA работает, анализируя использование ресурсов ваших подов с течением времени и делая рекомендации на основе этого анализа. Это помогает обеспечить подам необходимые ресурсы без избыточного выделения, что ведёт к более эффективному использованию ресурсов в кластере.
VerticalPodAutoscaler (VPA) расширяет концепцию оптимизации ресурсов подов. VPA отслеживает использование ресурсов ваших подов и предоставляет рекомендации по запросам CPU и памяти на основе наблюдаемых шаблонов использования.
VPA работает, непрерывно мониторя использование ресурсов подами и обновляя свои рекомендации по мере поступления новых данных. VPA может работать в следующих режимах:
Важно: Эластичное масштабирование может обеспечивать горизонтальное или вертикальное масштабирование подов. При наличии достаточных ресурсов эластичное масштабирование даёт хорошие результаты, но при нехватке ресурсов кластера это может привести к состоянию Pending у подов. Поэтому убедитесь, что в кластере достаточно ресурсов или установлены разумные квоты, либо настройте оповещения для мониторинга условий масштабирования.
VerticalPodAutoscaler предоставляет рекомендации по ресурсам на основе исторических шаблонов использования, позволяя оптимизировать конфигурации CPU и памяти ваших подов.
Важно: При ручном применении рекомендаций VPA происходит пересоздание подов, что может вызвать временные перебои в работе приложения. Рекомендуется применять рекомендации в окна обслуживания для рабочих нагрузок в продакшене.
Перед использованием VPA необходимо установить кластерный плагин Vertical Pod Autoscaler:
Войдите в систему и перейдите на страницу Administrators.
Нажмите Marketplace > Cluster Plugins, чтобы открыть список Cluster Plugins.
Найдите кластерный плагин Alauda Container Platform Vertical Pod Autoscaler, нажмите Install и перейдите на страницу установки.
Вы можете создать VerticalPodAutoscaler через командную строку, определив YAML-файл и используя команду kubectl create
. В следующем примере показано вертикальное автоскейлирование подов для объекта Deployment:
Создайте YAML-файл с именем vpa.yaml
со следующим содержимым:
Примените YAML-файл для создания VPA:
Пример вывода:
После создания VPA вы можете просмотреть рекомендации, выполнив команду:
Пример вывода (частично):
Перейдите в Container Platform.
В левой навигационной панели выберите Workloads > Deployments.
Кликните по Имя Deployment.
Пролистайте вниз до области Elastic Scaling и справа нажмите Update.
Выберите Vertical Scaling и настройте правила масштабирования.
Параметр | Описание |
---|---|
Режим масштабирования | В настоящее время поддерживается режим Manual Scaling, который предоставляет рекомендуемые конфигурации ресурсов на основе анализа прошлых данных использования ресурсов. Вы можете вручную корректировать значения согласно рекомендациям. Корректировки приведут к пересозданию и перезапуску подов, поэтому выбирайте подходящее время, чтобы не повлиять на работающие приложения. Обычно после работы подов более 8 дней рекомендуемые значения становятся точными. Обратите внимание, что при нехватке ресурсов кластера масштабирование может привести к состоянию Pending у подов. Убедитесь, что в кластере достаточно ресурсов или установлены разумные квоты, либо настройте оповещения для мониторинга условий масштабирования. |
Целевой контейнер | По умолчанию выбран первый контейнер рабочей нагрузки. Вы можете включить рекомендации по лимитам ресурсов для одного или нескольких контейнеров по необходимости. |
Нажмите Update.
updateMode: "Off"
— VPA только предоставляет рекомендации без их автоматического применения. Вы можете применять рекомендации вручную по мере необходимости.updateMode: "Auto"
— Автоматически устанавливает запросы ресурсов при создании подов и обновляет текущие поды до рекомендуемых значений. В настоящее время эквивалентно "Recreate".updateMode: "Recreate"
— Автоматически устанавливает запросы ресурсов при создании подов и эвакуирует текущие поды для обновления до рекомендуемых значений.updateMode: "Initial"
— Устанавливает запросы ресурсов только при создании подов, без последующих изменений.minReplicas: <number>
— Минимальное количество реплик. Обеспечивает наличие этого минимального количества подов при эвакуации подов Updater’ом. Должно быть больше 0.containerName: "*"
— Применить политику ко всем контейнерам в поде.mode: "Auto"
— Автоматически генерировать рекомендации для контейнера.mode: "Off"
— Не генерировать рекомендации для контейнера.Примечания:
После настройки VPA рекомендуемые значения лимитов ресурсов CPU и памяти для целевого контейнера можно просмотреть в области Elastic Scaling. В разделе Containers выберите вкладку целевого контейнера и нажмите иконку справа от Resource Limits, чтобы обновить лимиты ресурсов согласно рекомендуемым значениям.