Настройка VerticalPodAutoscaler (VPA)
Содержание
ОбзорПримечания к выпускуПоддерживаемые версииПримечания к выпуску v4.2Политика жизненного циклаПонимание VerticalPodAutoscalersКак работает VPA?Поддерживаемые возможностиПредварительные требованияУстановка плагина Vertical Pod AutoscalerОбновление плагина Vertical Pod AutoscalerСоздание VerticalPodAutoscalerИспользование CLIИспользование веб-консолиРасширенная конфигурация VPAПараметры политики обновленияПараметры политики контейнераДальнейшие действияОбзор
Alauda Container Platform Vertical Pod Autoscaler основан на компоненте Vertical Pod Autoscaler с открытым исходным кодом. Он анализирует исторические данные об использовании ресурсов Pods и предоставляет рекомендации по квотам для повышения эффективности использования ресурсов.
Как для приложений без состояния, так и для приложений со состоянием, VerticalPodAutoscaler (VPA) автоматически рекомендует — и при необходимости применяет — более подходящие ограничения CPU и памяти на основе потребностей вашего приложения. Это помогает обеспечить Pods достаточными ресурсами и одновременно повысить общую эффективность использования ресурсов в кластере.
Примечания к выпуску
В этом разделе описаны новые возможности, улучшения, устаревшие функции и известные проблемы плагина Alauda Container Platform Vertical Pod Autoscaler.
Поддерживаемые версии
Примечания к выпуску v4.2
v4.2.0
- Устранение уязвимости в системе безопасности.
- Теперь может выпускаться независимо.
Политика жизненного цикла
Следующая таблица содержит график жизненного цикла выпущенных версий плагина Alauda Container Platform Vertical Pod Autoscaler:
Понимание VerticalPodAutoscalers
VerticalPodAutoscaler (VPA) используется для рекомендации или автоматического обновления запросов и ограничений CPU и памяти для ваших Pods на основе их исторических шаблонов использования.
После создания VPA платформа начинает отслеживать использование ресурсов целевых Pods. После сбора достаточного объема данных VPA вычисляет рекомендуемые значения ресурсов. В зависимости от настроенного режима обновления VPA может либо автоматически применить эти рекомендации, либо просто предоставить их для ручной проверки и применения.
Анализируя использование ресурсов во времени, VPA помогает обеспечить выделение вашим Pods необходимых ресурсов без избыточного резервирования, что приводит к более эффективному использованию ресурсов во всем кластере.
Как работает VPA?
VerticalPodAutoscaler (VPA) расширяет концепцию оптимизации ресурсов pod. VPA отслеживает использование ресурсов ваших pods и формирует рекомендации по CPU и памяти на основе наблюдаемых шаблонов использования.
VPA работает, непрерывно отслеживая использование ресурсов ваших pods и обновляя рекомендации по мере появления новых данных. VPA может работать в следующих режимах:
- Off: VPA только предоставляет рекомендации, не применяя их автоматически.
- Manual Adjustment: вы можете вручную скорректировать конфигурацию ресурсов на основе рекомендаций VPA.
Важно: Эластичное масштабирование (горизонтальное или вертикальное) работает лучше всего, когда ресурсов кластера достаточно. При дефиците ресурсов действия по масштабированию могут привести к тому, что Pods зависнут в состоянии
Pending. Убедитесь, что в кластере достаточно ресурсов, задайте разумные квоты и настройте оповещения для отслеживания событий масштабирования.
Поддерживаемые возможности
VPA предоставляет рекомендации по ресурсам на основе исторических шаблонов использования, позволяя оптимизировать конфигурации CPU и памяти вашего pod.
Важно: При ручном применении рекомендаций VPA произойдет пересоздание pod, что может вызвать временное прерывание работы приложения. Для рабочих нагрузок в production рекомендуется применять рекомендации в окна обслуживания.
Предварительные требования
Перед использованием VPA убедитесь в следующем:
-
В вашем кластере установлен кластерный плагин Alauda Container Platform Vertical Pod Autoscaler.
- Загрузите последний пакет плагина, совместимый с версией вашей платформы.
- Используйте инструмент
violetCLI для загрузки пакетов 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. В следующем примере показано вертикальное autoscaling для объекта Deployment:
-
Создайте YAML-файл с именем
vpa.yamlсо следующим содержимым:- Используйте API autoscaling.k8s.io/v1.
- Имя VPA.
- Укажите целевой объект рабочей нагрузки. VPA использует селектор рабочей нагрузки, чтобы найти pods, которым требуется корректировка ресурсов. Поддерживаемые типы рабочих нагрузок включают 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 вы можете просмотреть рекомендации, выполнив следующую команду:
Пример вывода (фрагмент):
Использование веб-консоли
-
Войдите в систему и перейдите в 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 и памяти для целевого контейнера можно просмотреть в области Elastic Scaling. В области Containers выберите вкладку целевого контейнера и нажмите значок справа от Resource Limits, чтобы обновить ограничения ресурсов в соответствии с рекомендованными значениями.