Настройка VerticalPodAutoscaler (VPA)
Содержание
ОбзорПримечания к выпускуПоддерживаемые версииПримечания к выпуску v4.3Политика жизненного циклаПонимание VerticalPodAutoscalersКак работает VPA?Поддерживаемые возможностиПредварительные требованияУстановка плагина Vertical Pod AutoscalerОбновление плагина Vertical Pod AutoscalerСоздание VerticalPodAutoscalerИспользование CLIИспользование Web ConsoleРасширенная настройка VPAПараметры политики обновленияПараметры политики контейнераДальнейшие действияОбзор
Alauda Container Platform Vertical Pod Autoscaler основан на компоненте с открытым исходным кодом Vertical Pod Autoscaler. Он анализирует исторические данные об использовании ресурсов Pods и предоставляет рекомендации по квотам для повышения эффективности использования ресурсов.
Для приложений без сохранения состояния и с сохранением состояния VerticalPodAutoscaler (VPA) автоматически рекомендует — и при необходимости применяет — более подходящие ограничения CPU и memory на основе потребностей вашего приложения. Это помогает обеспечить Pod'ам достаточные ресурсы и одновременно повысить общую эффективность использования ресурсов кластера.
Примечания к выпуску
В этом разделе описаны новые функции, улучшения, устаревшие возможности и известные проблемы плагина Alauda Container Platform Vertical Pod Autoscaler.
Поддерживаемые версии
Примечания к выпуску v4.3
v4.3.0
- Устранение уязвимости безопасности.
Политика жизненного цикла
Следующая таблица описывает график жизненного цикла выпущенных версий плагина Alauda Container Platform Vertical Pod Autoscaler:
Понимание VerticalPodAutoscalers
VerticalPodAutoscaler (VPA) используется для рекомендации или автоматического обновления запросов и лимитов ресурсов CPU и memory для ваших Pods на основе их исторических шаблонов использования.
После создания VPA платформа начинает отслеживать использование ресурсов целевыми Pods. После сбора достаточного объема данных VPA вычисляет рекомендуемые значения ресурсов. В зависимости от настроенного режима обновления VPA может либо автоматически применить эти рекомендации, либо просто предоставить их для ручной проверки и применения.
Анализируя использование ресурсов с течением времени, VPA помогает обеспечить выделение вашим Pods необходимых ресурсов без избыточного резервирования, что приводит к более эффективному использованию ресурсов во всем кластере.
Как работает VPA?
VerticalPodAutoscaler (VPA) расширяет концепцию оптимизации ресурсов Pod. VPA отслеживает использование ресурсов вашими pods и предоставляет рекомендации по запросам CPU и memory на основе наблюдаемых шаблонов использования.
VPA работает путем непрерывного мониторинга использования ресурсов ваших pods и обновления рекомендаций по мере появления новых данных. VPA может работать в следующих режимах:
- Off: VPA только предоставляет рекомендации, не применяя их автоматически.
- Manual Adjustment: вы можете вручную корректировать конфигурацию ресурсов на основе рекомендаций VPA.
Важно: Эластичное масштабирование (горизонтальное или вертикальное) работает лучше всего, когда ресурсов кластера достаточно. При нехватке ресурсов операции масштабирования могут привести к тому, что Pods застрянут в состоянии
Pending. Убедитесь, что в кластере достаточно ресурсов, задайте разумные квоты и настройте оповещения для мониторинга событий масштабирования.
Поддерживаемые возможности
VPA предоставляет рекомендации по ресурсам на основе исторических шаблонов использования, позволяя оптимизировать конфигурации CPU и memory вашего pod.
Важно: При ручном применении рекомендаций VPA будет выполнено повторное создание pod, что может вызвать временное нарушение работы приложения. Для production-нагрузок рекомендуется применять рекомендации в окна обслуживания.
Предварительные требования
Перед использованием 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. В следующем примере показано вертикальное автомасштабирование pod для объекта Deployment:
-
Создайте YAML-файл с именем
vpa.yamlсо следующим содержимым:- Используйте API autoscaling.k8s.io/v1.
- Имя VPA
- Укажите целевой объект workload. VPA использует селектор workload для поиска pods, которым требуется корректировка ресурсов. Поддерживаемые типы workload включают DaemonSet, Deployment, ReplicaSet, StatefulSet, ReplicationController, Job и CronJob.
- Укажите версию API объекта, который требуется масштабировать.
- Укажите тип объекта.
- Целевой ресурс, к которому применяется VPA
- Политика обновления, определяющая, как VPA применяет рекомендации. Параметр updateMode может принимать следующие значения:
- Auto: автоматически задает запросы ресурсов при создании pods и обновляет текущие pods до рекомендуемых запросов ресурсов. В настоящее время эквивалентно "Recreate". Этот режим может вызвать простои приложения. После поддержки обновления ресурсов pod на месте режим "Auto" будет использовать этот механизм обновления.
- Recreate: автоматически задает запросы ресурсов при создании pods и удаляет текущие pods для обновления до рекомендуемых запросов ресурсов. Не использует обновления на месте.
- Initial: задает запросы ресурсов только при создании pods, после этого изменений не вносит.
- Off: автоматически не изменяет запросы ресурсов pod, а только предоставляет рекомендации в объекте VPA.
- Политика ресурсов, которая может задавать отдельные стратегии для разных контейнеров. Например, установка для контейнера режима "Auto" означает, что для него будут рассчитываться рекомендации, а режим "Off" означает, что рекомендации рассчитываться не будут.
- Применить политику ко всем контейнерам в pod.
- Установить режим Auto или Off. Auto означает, что для этого контейнера будут сгенерированы рекомендации, Off означает, что рекомендации генерироваться не будут.
-
Примените YAML-файл, чтобы создать VPA:
Пример вывода:
-
После создания VPA вы можете просмотреть рекомендации, выполнив следующую команду:
Пример вывода (частично):
Использование Web Console
-
Войдите в систему и перейдите в Container Platform.
-
В левой панели навигации нажмите Workloads > Deployments.
-
Нажмите на Deployment Name.
-
Прокрутите вниз до области Elastic Scaling и нажмите Update справа.
-
Выберите Vertical Scaling и настройте правила масштабирования.
-
Нажмите Update.
Расширенная настройка VPA
Параметры политики обновления
updateMode: "Off"— VPA только предоставляет рекомендации, не применяя их автоматически. При необходимости вы можете применить эти рекомендации вручную.updateMode: "Auto"— автоматически задает запросы ресурсов при создании pods и обновляет текущие pods до рекомендуемых значений. В настоящее время эквивалентно "Recreate".updateMode: "Recreate"— автоматически задает запросы ресурсов при создании pods и удаляет текущие pods для обновления до рекомендуемых значений.updateMode: "Initial"— задает запросы ресурсов только при создании pods, после этого изменений не вносит.minReplicas: <number>— минимальное количество реплик. Обеспечивает сохранение этого минимального количества доступных pods, когда Updater удаляет pods. Должно быть больше 0.
Параметры политики контейнера
containerName: "*"— применить политику ко всем контейнерам в pod.mode: "Auto"— автоматически генерировать рекомендации для контейнера.mode: "Off"— не генерировать рекомендации для контейнера.
Примечания:
- Рекомендации VPA основаны на исторических данных об использовании, поэтому для достижения точности может потребоваться несколько дней работы pod.
- При применении рекомендаций VPA в режиме Auto будет выполнено повторное создание pod, что может вызвать временное нарушение работы приложения.
Дальнейшие действия
После настройки VPA рекомендуемые значения лимитов ресурсов CPU и memory для целевого контейнера можно просмотреть в области Elastic Scaling. В области Containers выберите вкладку целевого контейнера и нажмите значок справа от Resource Limits, чтобы обновить лимиты ресурсов в соответствии с рекомендуемыми значениями.