Настройка вертикального масштабирования подов (VPA)
Описание
Vertical Pod Autoscaler (VPA) — это компонент, который автоматически изменяет запросы
ресурсов (requests) и лимитов (limits) для подов на основе их фактического потребления. VPA позволяет
оптимизировать использование ресурсов кластера без ручного задания значений CPU и памяти.
Note
Подробнее о принципах работы VPA в официальной документации Kubernetes.
В кластерах платформы Боцман можно установить и настроить любой подходящий вариант VPA. Данное руководство описывает установку и настройку VPA на базе реализации Kubernetes Autoscaler.
Когда это может пригодиться
- Нужно автоматически подбирать
requestsиlimitsдля подов, чтобы избежать как нехватки ресурсов, так и их избыточного резервирования. - Требуется проанализировать фактическое потребление ресурсов приложениями в кластере.
Предварительные требования
- Установленный и настроенный
helmна машине с доступом к кластеру. - Для установки VPA необходимо подключить репозиторий с помощью утилиты helm: helm repo autoscalers
Установка VPA
-
Подключите репозиторий Kubernetes Autoscaler:
-
Выполните установку VPA в кластер:
-
Убедитесь, что установка завершилась успешно — все поды VPA должны перейти в статус
Running:
Пример
Предположим, что в кластере работает Deployment с именем vpa-demo, в рамках которого
запущено несколько подов со следующими настройками ресурсов:
Создайте манифест vpa-demo.yaml:
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
name: vpa-demo
namespace: default
spec:
resourcePolicy:
containerPolicies:
- containerName: '*'
controlledValues: RequestsOnly
maxAllowed:
cpu: 2
memory: 4Gi
minAllowed:
cpu: 50m
memory: 64Mi
targetRef:
apiVersion: apps/v1
kind: Deployment
name: vpa-demo
updatePolicy:
updateMode: Recreate
Примените манифест:
В примере описано вертикальное масштабирование подов, запущенных в рамках деплоймента vpa-demo, исключительно по параметру requests, limits остаются без изменений
Проверка работы VPA
-
До применения манифеста проверьте текущие ресурсы подов:
Ожидаемый вывод:
-
После применения манифеста поды начнут пересоздаваться. Дождитесь завершения процедуры пересоздания и проверьте обновлённые значения:
Примерный ожидаемый вывод (значения могут отличаться в зависимости от фактического потребления):
Как видно, VPA автоматически определил новые параметры
requestsна основе фактического потребления ресурсов подами.Note
VPA может потребоваться некоторое время (до нескольких минут) для сбора метрик и применения рекомендаций.