Настройка VerticalPodAutoscaler (VPA)
Содержание
ОбзорПримечания к выпускуПоддерживаемые версииПримечания к выпуску v4.2Политика жизненного циклаПонимание VerticalPodAutoscalersКак работает VPA?Поддерживаемые функцииПредварительные требованияУстановка плагина Vertical Pod AutoscalerОбновление плагина Vertical Pod AutoscalerСоздание VerticalPodAutoscalerИспользование CLIИспользование веб-консолиРасширенная настройка VPAОпции политики обновленияОпции политики контейнераПоследующие действияОбзор
Alauda Container Platform Vertical Pod Autoscaler основан на открытом компоненте Vertical Pod Autoscaler. Он анализирует исторические данные об использовании ресурсов подами и предоставляет рекомендации по квотам для улучшения использования ресурсов.
Для как статeless, так и stateful приложений VerticalPodAutoscaler (VPA) автоматически рекомендует — и при необходимости применяет — более подходящие лимиты CPU и памяти на основе потребностей вашего приложения. Это помогает обеспечить подам достаточные ресурсы и одновременно улучшить общее использование ресурсов в кластере.
Примечания к выпуску
В этом разделе описаны новые функции, улучшения, устаревшие возможности и известные проблемы плагина Alauda Container Platform Vertical Pod Autoscaler.
Поддерживаемые версии
Примечания к выпуску v4.2
v4.2.0
- Исправление уязвимостей безопасности.
- Теперь может выпускаться независимо.
Политика жизненного цикла
В следующей таблице приведён график жизненного цикла выпущенных версий плагина Alauda Container Platform Vertical Pod Autoscaler:
Понимание VerticalPodAutoscalers
VerticalPodAutoscaler (VPA) используется для рекомендации или автоматического обновления запросов и лимитов CPU и памяти для ваших подов на основе их исторических шаблонов использования.
После создания VPA платформа начинает отслеживать использование ресурсов целевых подов. Как только собирается достаточное количество данных, VPA вычисляет рекомендуемые значения ресурсов. В зависимости от настроенного режима обновления VPA может либо автоматически применять эти рекомендации, либо просто предоставлять их для ручного просмотра и применения.
Анализируя использование ресурсов с течением времени, VPA помогает обеспечить выделение подам необходимых ресурсов без избыточного резервирования, что ведёт к более эффективному использованию ресурсов всего кластера.
Как работает VPA?
VerticalPodAutoscaler (VPA) расширяет концепцию оптимизации ресурсов подов. VPA отслеживает использование ресурсов ваших подов и предоставляет рекомендации по запросам CPU и памяти на основе наблюдаемых шаблонов использования.
VPA работает, постоянно отслеживая использование ресурсов подов и обновляя свои рекомендации по мере поступления новых данных. VPA может работать в следующих режимах:
- Off: VPA только предоставляет рекомендации без их автоматического применения.
- Manual Adjustment: Вы можете вручную корректировать конфигурации ресурсов на основе рекомендаций VPA.
Важно: Эластичное масштабирование (горизонтальное или вертикальное) работает лучше всего при достаточном количестве ресурсов в кластере. При нехватке ресурсов действия масштабирования могут привести к тому, что поды останутся в состоянии
Pending. Убедитесь, что в вашем кластере достаточно ресурсов, установлены разумные квоты и настроены оповещения для мониторинга событий масштабирования.
Поддерживаемые функции
VPA предоставляет рекомендации по ресурсам на основе исторических шаблонов использования, позволяя оптимизировать конфигурации CPU и памяти ваших подов.
Важно: При ручном применении рекомендаций VPA происходит пересоздание подов, что может вызвать временные перебои в работе приложения. Рассмотрите возможность применения рекомендаций в окна обслуживания для рабочих нагрузок в продакшене.
Предварительные требования
Перед использованием VPA убедитесь в следующем:
-
В вашем кластере установлен кластерный плагин Alauda Container Platform Vertical Pod Autoscaler.
- Скачайте последний пакет плагина, совместимый с вашей версией платформы.
- Используйте CLI-инструмент
violetдля загрузки пакетов Alauda Container Platform Vertical Pod Autoscalers и Alauda DevOps Pipelines в целевой кластер. Подробные инструкции по использованиюvioletдоступны в разделе CLI.
-
Убедитесь, что компоненты мониторинга развернуты в текущем кластере и работают корректно. Вы можете проверить статус развертывания и состояние компонентов мониторинга, нажав в правом верхнем углу платформы
> Platform Health Status..
Установка плагина Vertical Pod Autoscaler
-
Войдите в систему и перейдите на страницу Administrators.
-
Нажмите Marketplace > Cluster Plugins, чтобы открыть список Cluster Plugins.
-
Найдите кластерный плагин Alauda Container Platform Vertical Pod Autoscaler, нажмите Install и перейдите на страницу установки.
Обновление плагина Vertical Pod Autoscaler
-
Войдите в систему и перейдите на страницу Administrators.
-
Нажмите Marketplace > Cluster Plugins, чтобы открыть список Cluster Plugins.
-
Найдите кластерный плагин Alauda Container Platform Vertical Pod Autoscaler, нажмите Upgrade и перейдите на страницу установки.
Создание VerticalPodAutoscaler
Использование CLI
Вы можете создать VerticalPodAutoscaler с помощью командной строки, определив YAML-файл и используя команду kubectl create. В следующем примере показано вертикальное автоскейлирование подов для объекта Deployment:
-
Создайте YAML-файл с именем
vpa.yamlсо следующим содержимым:- Используйте API autoscaling.k8s.io/v1.
- Имя VPA.
- Укажите целевой объект рабочей нагрузки. VPA использует селектор рабочей нагрузки для поиска подов, которым нужно скорректировать ресурсы. Поддерживаемые типы рабочих нагрузок: DaemonSet, Deployment, ReplicaSet, StatefulSet, ReplicationController, Job и CronJob.
- Укажите версию API объекта для масштабирования.
- Укажите тип объекта.
- Целевой ресурс, к которому применяется VPA.
- Политика обновления, определяющая, как VPA применяет рекомендации. Параметр updateMode может принимать значения:
- Auto: Автоматически устанавливает запросы ресурсов при создании подов и обновляет текущие поды до рекомендуемых значений. В настоящее время эквивалентно "Recreate". Этот режим может вызвать простой приложения. После поддержки обновлений ресурсов подов на месте режим "Auto" будет использовать этот механизм.
- Recreate: Автоматически устанавливает запросы ресурсов при создании подов и эвакуирует текущие поды для обновления до рекомендуемых значений. Обновления на месте не используются.
- Initial: Устанавливает запросы ресурсов только при создании подов, последующие изменения не применяются.
- Off: Не изменяет запросы ресурсов подов автоматически, только предоставляет рекомендации в объекте VPA.
- Политика ресурсов, позволяющая задавать отдельные стратегии для разных контейнеров. Например, установка режима контейнера в "Auto" означает, что для этого контейнера будут рассчитываться рекомендации, а "Off" — что рекомендации не будут рассчитываться.
- Применить политику ко всем контейнерам в поде.
- Установить режим Auto или Off. Auto означает, что для этого контейнера будут генерироваться рекомендации, Off — что рекомендации не будут генерироваться.
-
Примените YAML-файл для создания VPA:
Пример вывода:
-
После создания VPA вы можете просмотреть рекомендации, выполнив команду:
Пример вывода (частичный):
Использование веб-консоли
-
Войдите в систему и перейдите в Container Platform.
-
В левой навигационной панели нажмите Workloads > Deployments.
-
Кликните по Имя Deployment.
-
Прокрутите вниз до раздела Elastic Scaling и справа нажмите Update.
-
Выберите Vertical Scaling и настройте правила масштабирования.
-
Нажмите Update.
Расширенная настройка VPA
Опции политики обновления
updateMode: "Off"— VPA только предоставляет рекомендации без их автоматического применения. Вы можете применять рекомендации вручную по мере необходимости.updateMode: "Auto"— Автоматически устанавливает запросы ресурсов при создании подов и обновляет текущие поды до рекомендуемых значений. В настоящее время эквивалентно "Recreate".updateMode: "Recreate"— Автоматически устанавливает запросы ресурсов при создании подов и эвакуирует текущие поды для обновления до рекомендуемых значений.updateMode: "Initial"— Устанавливает запросы ресурсов только при создании подов, последующие изменения не применяются.minReplicas: <number>— Минимальное количество реплик. Обеспечивает, что при эвакуации подов Updater не уменьшит количество доступных подов ниже этого значения. Должно быть больше 0.
Опции политики контейнера
containerName: "*"— Применить политику ко всем контейнерам в поде.mode: "Auto"— Автоматически генерировать рекомендации для контейнера.mode: "Off"— Не генерировать рекомендации для контейнера.
Примечания:
- Рекомендации VPA основаны на исторических данных использования, поэтому может потребоваться несколько дней работы подов, прежде чем рекомендации станут точными.
- При применении рекомендаций VPA в режиме Auto происходит пересоздание подов, что может вызвать временные перебои в работе приложения.
Последующие действия
После настройки VPA рекомендуемые значения лимитов CPU и памяти для целевого контейнера можно просмотреть в разделе Elastic Scaling. В области Containers выберите вкладку целевого контейнера и нажмите значок справа от Resource Limits, чтобы обновить лимиты ресурсов согласно рекомендуемым значениям.