Автомасштабирование вертикального модуля Pod в Служба Azure Kubernetes (AKS)
В этой статье представлен обзор вертикального автомасштабирования Pod (VPA) в Служба Azure Kubernetes (AKS), который основан на версии открытый код Kubernetes. При настройке он автоматически задает запросы ресурсов и ограничения на контейнеры для каждой рабочей нагрузки на основе прошлого использования. VPA освобождает ЦП и память для других модулей pod и помогает эффективно использовать кластер AKS.
Автомасштабирование по вертикали pod предоставляет рекомендации по использованию ресурсов с течением времени. Чтобы управлять внезапным увеличением использования ресурсов, используйте средство автомасштабирования горизонтального модуля Pod, которое масштабирует количество реплика pod по мере необходимости.
Льготы
Вертикальное автомасштабирование pod обеспечивает следующие преимущества:
Он анализирует и настраивает ресурсы процессора и памяти для правильного размера приложений. VPA не только отвечает за увеличение масштаба, но и за масштабирование на основе использования ресурсов с течением времени.
Модуль pod вытеснен, если он должен изменить запросы ресурсов, если его режим масштабирования установлен для автоматического или повторного создания.
Задание ограничений ЦП и памяти для отдельных контейнеров путем указания политики ресурсов
Гарантирует, что узлы имеют правильные ресурсы для планирования pod
Настраиваемое ведение журнала любых настроек для ресурсов процессора или памяти, сделанных
Повышение использования ресурсов кластера и освобождение ЦП и памяти для других модулей pod.
Ограничения
Автомасштабирование вертикального модуля Pod поддерживает не более 1000 модулей pod, связанных с
VerticalPodAutoscaler
объектами на кластер.VPA может рекомендовать больше ресурсов, чем доступно в кластере. В результате это предотвращает назначение модуля pod узлу и запуску, так как узел не имеет достаточных ресурсов. Это ограничение можно преодолеть, задав LimitRange максимально доступные ресурсы для каждого пространства имен, что гарантирует, что модули pod не запрашивают больше ресурсов, чем указано. Кроме того, можно задать максимально допустимые рекомендации по ресурсам для каждого модуля pod в объекте
VerticalPodAutoscaler
. Помните, что VPA не может полностью преодолеть нехватку ресурсов узла. Диапазон ограничений исправлен, но использование ресурсов узла динамически изменяется.Мы не рекомендуем использовать вертикальное автомасштабирование pod с горизонтальным автомасштабированием pod, который масштабируется на основе одних и того же показателя использования ЦП и памяти.
Средство рекомендаций VPA хранит только до восьми дней исторических данных.
VPA не поддерживает рабочие нагрузки на основе JVM из-за ограниченной видимости фактического использования памяти рабочей нагрузки.
Не рекомендуется или не поддерживается для запуска собственной реализации VPA вместе с этой управляемой реализацией VPA. Поддержка дополнительного или настраиваемого рекомендуемого средства.
Контейнеры Windows AKS не поддерживаются.
Подготовка к работе
В кластере AKS работает Kubernetes версии 1.24 или более поздней.
Интерфейс командной строки Azure версии 2.52.0 или более поздней версии, установленный и настроенный. Чтобы узнать версию, выполните команду
az --version
. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.kubectl
необходимо подключиться к кластеру, который требуется установить VPA.
Обзор VPA
Объект API
Вертикальное автомасштабирование pod — это ресурс API в группе API Автомасштабирования Kubernetes. Поддерживаемая версия — 0.11 и выше, и ее можно найти в репозитории автомасштабирования Kubernetes.
Объект VPA состоит из трех компонентов:
Рекомендация — он отслеживает текущее и предыдущее потребление ресурсов, а на его основе предоставляет рекомендуемые значения для запросов и ограничений ЦП и памяти контейнеров. Средство рекомендаций отслеживает журнал метрик, события вне памяти (OOM) и спецификацию развертывания VPA и предлагает справедливые запросы. Предоставляя правильный запрос ресурсов и конфигурацию ограничений, ограничения создаются и снижаются.
Обновление — это проверка, какие из управляемых модулей pod имеют правильный набор ресурсов, и, если нет, убивает их, чтобы их можно было воссоздать их контроллерами с обновленными запросами.
Контроллер допуска VPA — он задает правильные запросы ресурсов на новых модулях pod (созданных или повторно созданных их контроллером из-за действия Updater).
Контроллер допуска VPA
Контроллер допуска VPA — это двоичный файл, который регистрирует себя как веб-перехватчик для мутирующего приема. При создании каждого модуля pod он получает запрос от сервера apiserver и оценивает, есть ли соответствующая конфигурация VPA, или найти соответствующую и использовать текущую рекомендацию для задания запросов ресурсов в модуле pod.
Автономное задание выполняется за пределами контроллера допуска VPA.overlay-vpa-cert-webhook-check
Используется overlay-vpa-cert-webhook-check
для создания и продления сертификатов, а также регистрации контроллера допуска VPA в качестве контроллера MutatingWebhookConfiguration
.
Для обеспечения высокой доступности AKS поддерживает два контроллера допуска реплика.
Режимы операций объектов VPA
Ресурс автомасштабирования вертикального модуля Pod вставляется для каждого контроллера, для которого требуется автоматически вычислить требования к ресурсам. Это чаще всего развертывание. Существует четыре режима, в которых работают виртуальные платформы:
Auto
— VPA назначает запросы ресурсов во время создания и обновления существующих модулей pod с помощью предпочтительного механизма обновления.Auto
В настоящее время эквивалентенRecreate
режиму по умолчанию. После того как обновление запросов pod на месте перезапуска ("на месте") доступно, оно может использоваться в качестве предпочтительного механизма обновления в режимеAuto
. При использованииRecreate
режима VPA вытесняет модуль pod, если он должен изменить запросы ресурсов. Это может привести к перезапуску модулей pod одновременно, что приводит к несоответствиям приложений. Вы можете ограничить перезапуски и обеспечить согласованность в этой ситуации с помощью PodDisruptionBudget.Recreate
— VPA назначает запросы ресурсов во время создания модуля pod, а также обновляет существующие модули pod, вытеснив их, когда запрошенные ресурсы значительно отличаются от новой рекомендации (при определении бюджета прерывания pod). Этот режим следует использовать редко, только если необходимо убедиться, что модули pod перезапускаются всякий раз при изменении запроса ресурса. В противном случае режимAuto
предпочтителен, что может воспользоваться преимуществами обновлений без перезапуска после их доступности.Initial
— VPA назначает только запросы ресурсов во время создания pod и никогда не изменяет их после этого.Off
— VPA не изменяет требования к ресурсам модулей pod автоматически. Рекомендации вычисляются и могут быть проверены в объекте VPA.
Шаблон развертывания во время разработки приложений
Распространенный шаблон развертывания, рекомендуемый для вас, если вы не знакомы с VPA, выполните следующие действия во время разработки приложений, чтобы определить свои уникальные характеристики использования ресурсов, протестировать VPA, чтобы убедиться, что он работает правильно, и протестировать вместе с другими компонентами Kubernetes для оптимизации использования ресурсов кластера.
Установите UpdateMode = "Off" в рабочем кластере и запустите VPA в режиме рекомендаций, чтобы протестировать и получить представление о VPA. UpdateMode = Off может избежать неправильной настройки, которая может вызвать сбой.
Сначала создайте наблюдаемость, собирая фактические данные телеметрии использования ресурсов в течение заданного периода времени. Это помогает понять поведение и признаки симптомов или проблем с ресурсами контейнера и pod, на которые влияют рабочие нагрузки, выполняемые на них.
Ознакомьтесь с данными мониторинга, чтобы понять характеристики производительности. На основе этого анализа задайте требуемые запросы и ограничения соответствующим образом, а затем в следующем развертывании или обновлении
Задайте
updateMode
значениеAuto
,Recreate
илиInitial
в зависимости от ваших требований.
Развертывание, обновление или отключение VPA в кластере
В этом разделе описано, как развернуть, обновить или отключить средство автомасштабирования Вертикального модуля Pod в кластере.
Чтобы включить VPA в новом кластере, используйте
--enable-vpa
параметр с командой az aks create .az aks create -n myAKSCluster -g myResourceGroup --enable-vpa
Через несколько минут выполнение команды завершается и отображаются сведения о кластере в формате JSON.
При необходимости, чтобы включить VPA в существующем кластере, используйте
--enable-vpa
команду [https://learn.microsoft.com/en-us/cli/azure/aks?view=azure-cli-latest#az-aks-update] .az aks update -n myAKSCluster -g myResourceGroup --enable-vpa
Через несколько минут выполнение команды завершается и отображаются сведения о кластере в формате JSON.
При необходимости, чтобы отключить VPA в существующем кластере, используйте
--disable-vpa
команду [https://learn.microsoft.com/en-us/cli/azure/aks?view=azure-cli-latest#az-aks-update] .az aks update -n myAKSCluster -g myResourceGroup --disable-vpa
Через несколько минут выполнение команды завершается и отображаются сведения о кластере в формате JSON.
Чтобы убедиться, что модули pod Autoscaler по вертикали успешно созданы, используйте команду get kubectl.
kubectl get pods -n kube-system
Выходные данные команды включают следующие результаты, относящиеся к модулям pod VPA. Модули pod должны отображать состояние выполнения .
NAME READY STATUS RESTARTS AGE
vpa-admission-controller-7867874bc5-vjfxk 1/1 Running 0 41m
vpa-recommender-5fd94767fb-ggjr2 1/1 Running 0 41m
vpa-updater-56f9bfc96f-jgq2g 1/1 Running 0 41m
Тестирование установки средства вертикального автомасштабирования pod
Следующие шаги создают развертывание с двумя модулями pod, каждый из которых выполняет один контейнер, который запрашивает 100 милликоров и пытается использовать чуть выше 500 милликоров. Также создается конфигурация VPA, указывающая на развертывание. VPA наблюдает поведение модулей pod и через пять минут обновляется с более высоким запросом ЦП.
Создайте файл с именем
hamster.yaml
и скопируйте в следующем манифесте примера вертикального автомасштабирования Pod из репозитория kubernetes/autoscaler GitHub.hamster.yaml
Разверните пример автомасштабирования вертикального pod с помощью команды kubectl apply и укажите имя манифеста YAML:kubectl apply -f hamster.yaml
Через несколько минут выполнение команды завершается и отображаются сведения о кластере в формате JSON.
Выполните следующую команду kubectl get , чтобы получить модули pod из примера приложения хомяков:
kubectl get pods -l app=hamster
Пример выходных данных выглядит следующим образом:
hamster-78f9dcdd4c-hf7gk 1/1 Running 0 24s hamster-78f9dcdd4c-j9mc7 1/1 Running 0 24s
Используйте команду kubectl описать в одном из модулей pod для просмотра резервирования ЦП и памяти. Замените exampleID одним из идентификаторов pod, возвращенных в выходных данных предыдущего шага.
kubectl describe pod hamster-exampleID
Пример выходных данных — это фрагмент сведений о кластере:
hamster: Container ID: containerd:// Image: k8s.gcr.io/ubuntu-slim:0.1 Image ID: sha256: Port: <none> Host Port: <none> Command: /bin/sh Args: -c while true; do timeout 0.5s yes >/dev/null; sleep 0.5s; done State: Running Started: Wed, 28 Sep 2022 15:06:14 -0400 Ready: True Restart Count: 0 Requests: cpu: 100m memory: 50Mi Environment: <none>
Модуль pod имеет 100 миллипу и 50 Мибибайт памяти, зарезервированных в этом примере. Для этого примера приложения модуль pod должен выполняться менее 100 миллипусов, поэтому емкость ЦП недоступна. Модули pod также резервирует гораздо меньше памяти, чем требуется. Развертывание вертикального модуля Pod Autoscaler vpa-recommender анализирует модули pod, в которых размещено приложение хомячка, чтобы узнать, соответствуют ли требования к ЦП и памяти. Если необходимы корректировки, vpa-updater повторно запускает модули pod с обновленными значениями.
Подождите, пока vpa-updater запустит новый модуль хомячки, который должен занять несколько минут. Вы можете отслеживать модули pod с помощью команды get kubectl.
kubectl get --watch pods -l app=hamster
Когда запускается новый модуль хомячки, опишите модуль pod, выполняющий команду kubectl, и просмотрите обновленные резервирования ЦП и памяти.
kubectl describe pod hamster-<exampleID>
Пример выходных данных — это фрагмент сведений, описывающих модуль pod:
State: Running Started: Wed, 28 Sep 2022 15:09:51 -0400 Ready: True Restart Count: 0 Requests: cpu: 587m memory: 262144k Environment: <none>
В предыдущих выходных данных видно, что резервирование ЦП увеличилось до 587 миллипу, что превышает пять раз исходное значение. Объем памяти увеличился до 262 144 Килобайт, что составляет около 250 Мибибайтов или пять раз, чем исходное значение. Этот модуль pod был недостаточно ресурсоемким, и вертикальный модуль автомасштабирования pod исправил оценку с гораздо более подходящим значением.
Чтобы просмотреть обновленные рекомендации из VPA, выполните команду kubectl, чтобы описать сведения о ресурсе хомяк-vpa.
kubectl describe vpa/hamster-vpa
Пример выходных данных — это фрагмент сведений об использовании ресурсов:
State: Running Started: Wed, 28 Sep 2022 15:09:51 -0400 Ready: True Restart Count: 0 Requests: cpu: 587m memory: 262144k Environment: <none>
Настройка запросов автомасштабирования pod
Автомасштабирование по вертикали pod использует VerticalPodAutoscaler
объект для автоматического задания запросов ресурсов на pod, если для updateMode задано значение Auto. Можно задать другое значение в зависимости от требований и тестирования. В этом примере для updateMode задано значение Recreate
.
Включите VPA для кластера, выполнив следующую команду. Замените имя кластера именем
myAKSCluster
кластера AKS и заменитеmyResourceGroup
именем группы ресурсов, в котором размещен кластер.az aks update -n myAKSCluster -g myResourceGroup --enable-vpa
Создайте файл
azure-autodeploy.yaml
и скопируйте в него следующий манифест.apiVersion: apps/v1 kind: Deployment metadata: name: vpa-auto-deployment spec: replicas: 2 selector: matchLabels: app: vpa-auto-deployment template: metadata: labels: app: vpa-auto-deployment spec: containers: - name: mycontainer image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine resources: requests: cpu: 100m memory: 50Mi command: ["/bin/sh"] args: ["-c", "while true; do timeout 0.5s yes >/dev/null; sleep 0.5s; done"]
В этом манифесте описывается развертывание с двумя модулями pod. Каждый модуль pod имеет один контейнер, который запрашивает 100 миллиCPU и 50 МиБ памяти.
Создайте модуль pod с помощью команды kubectl create, как показано ниже.
kubectl create -f azure-autodeploy.yaml
Через несколько минут выполнение команды завершается и отображаются сведения о кластере в формате JSON.
Выполните следующую команду kubectl get , чтобы получить модули pod:
kubectl get pods
Выходные данные похожи на следующий пример, показывающий имя и состояние модулей pod:
NAME READY STATUS RESTARTS AGE vpa-auto-deployment-54465fb978-kchc5 1/1 Running 0 52s vpa-auto-deployment-54465fb978-nhtmj 1/1 Running 0 52s
Создайте файл с именем
azure-vpa-auto.yaml
и скопируйте его в следующем манифесте, описывающегоVerticalPodAutoscaler
:apiVersion: autoscaling.k8s.io/v1 kind: VerticalPodAutoscaler metadata: name: vpa-auto spec: targetRef: apiVersion: "apps/v1" kind: Deployment name: vpa-auto-deployment updatePolicy: updateMode: "Recreate"
Значение
targetRef.name
указывает, что любой модуль pod, контролируемый именемvpa-auto-deployment
развертывания, принадлежитVerticalPodAutoscaler
. ЗначениеupdateMode
Recreate
означает, что контроллер автомасштабирования вертикального модуля pod может удалить модуль pod, настроить запросы ЦП и памяти, а затем создать новый модуль pod.Примените манифест к кластеру с помощью команды kubectl apply :
kubectl create -f azure-vpa-auto.yaml
Подождите несколько минут и снова просмотрите запущенные модули pod, выполнив следующую команду kubectl get :
kubectl get pods
Выходные данные похожи на следующий пример, показывающий, что имена модулей pod изменились и состояние модулей pod:
NAME READY STATUS RESTARTS AGE vpa-auto-deployment-54465fb978-qbhc4 1/1 Running 0 2m49s vpa-auto-deployment-54465fb978-vbj68 1/1 Running 0 109s
Получите подробные сведения об одном из запущенных модулей pod с помощью команды get Kubectl. Замените
podName
именем одного из модулей pod, полученных на предыдущем шаге.kubectl get pod podName --output yaml
Выходные данные похожи на следующий пример, показывающий, что контроллер автомасштабирования вертикального модуля pod увеличил запрос памяти до 262144k и ЦП-запроса на 25 миллиCPU.
apiVersion: v1 kind: Pod metadata: annotations: vpaObservedContainers: mycontainer vpaUpdates: 'Pod resources updated by vpa-auto: container 0: cpu request, memory request' creationTimestamp: "2022-09-29T16:44:37Z" generateName: vpa-auto-deployment-54465fb978- labels: app: vpa-auto-deployment spec: containers: - args: - -c - while true; do timeout 0.5s yes >/dev/null; sleep 0.5s; done command: - /bin/sh image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine imagePullPolicy: IfNotPresent name: mycontainer resources: requests: cpu: 25m memory: 262144k
Чтобы получить подробные сведения о вертикальном автомасштабировании pod и его рекомендациях по ЦП и памяти, используйте команду get kubectl :
kubectl get vpa vpa-auto --output yaml
Выходные данные похожи на следующий пример:
recommendation: containerRecommendations: - containerName: mycontainer lowerBound: cpu: 25m memory: 262144k target: cpu: 25m memory: 262144k uncappedTarget: cpu: 25m memory: 262144k upperBound: cpu: 230m memory: 262144k
Результаты показывают
target
, что для оптимального выполнения контейнера не требуется изменять ЦП или целевой объект памяти. Результаты могут отличаться от того, где рекомендация целевого ЦП и памяти выше.Средство автомасштабирования вертикального модуля pod использует
lowerBound
иupperBound
атрибуты, чтобы решить, следует ли удалить модуль pod и заменить его новым модулем pod. Если модуль pod запрашивает меньше нижней или больше верхней границы, средство автомасштабирования вертикального модуля pod удаляет модуль pod и заменяет его на pod, соответствующий целевому атрибуту.
Дополнительный рекомендуемый параметр для автомасштабирования вертикального модуля Pod
В VPA один из основных компонентов — это средство рекомендаций. Он предоставляет рекомендации по использованию ресурсов на основе потребления ресурсов в режиме реального времени. AKS развертывает средство рекомендаций при включении VPA кластера. Вы можете развернуть настраиваемый рекомендуемый или дополнительный рекомендуемый объект с тем же изображением, что и по умолчанию. Преимущество настраиваемого рекомендуемого средства заключается в том, что вы можете настроить логику рекомендаций. С помощью дополнительного рекомендуемого средства можно секционировать виртуальные платформы для нескольких рекомендаций, если существует много объектов VPA.
В следующем примере приведен дополнительный рекомендуемый метод, применяемый к существующему кластеру AKS. Затем вы настроите объект VPA для использования дополнительного рекомендуемого средства.
Создайте файл с именем
extra_recommender.yaml
и скопируйте его в следующем манифесте:apiVersion: apps/v1 kind: Deployment metadata: name: extra-recommender namespace: kube-system spec: replicas: 1 selector: matchLabels: app: extra-recommender template: metadata: labels: app: extra-recommender spec: serviceAccountName: vpa-recommender securityContext: runAsNonRoot: true runAsUser: 65534 # nobody containers: - name: recommender image: registry.k8s.io/autoscaling/vpa-recommender:0.13.0 imagePullPolicy: Always args: - --recommender-name=extra-recommender resources: limits: cpu: 200m memory: 1000Mi requests: cpu: 50m memory: 500Mi ports: - name: prometheus containerPort: 8942
Разверните пример автомасштабирования вертикального
extra-recomender.yaml
модуля Pod с помощью команды kubectl apply и укажите имя манифеста YAML.kubectl apply -f extra-recommender.yaml
Через несколько минут выполнение команды завершается и отображаются сведения о кластере в формате JSON.
Создайте файл с именем
hamnster_extra_recommender.yaml
и скопируйте его в следующем манифесте:apiVersion: "autoscaling.k8s.io/v1" kind: VerticalPodAutoscaler metadata: name: hamster-vpa spec: recommenders: - name: 'extra-recommender' targetRef: apiVersion: "apps/v1" kind: Deployment name: hamster updatePolicy: updateMode: "Auto" resourcePolicy: containerPolicies: - containerName: '*' minAllowed: cpu: 100m memory: 50Mi maxAllowed: cpu: 1 memory: 500Mi controlledResources: ["cpu", "memory"] --- apiVersion: apps/v1 kind: Deployment metadata: name: hamster spec: selector: matchLabels: app: hamster replicas: 2 template: metadata: labels: app: hamster spec: securityContext: runAsNonRoot: true runAsUser: 65534 # nobody containers: - name: hamster image: k8s.gcr.io/ubuntu-slim:0.1 resources: requests: cpu: 100m memory: 50Mi command: ["/bin/sh"] args: - "-c" - "while true; do timeout 0.5s yes >/dev/null; sleep 0.5s; done"
Если
memory
этот параметр не указан,controlledResources
средство рекомендаций не отвечает на события OOM. В этом случае вы устанавливаете только ЦП.controlledValues
controlledValues
позволяет выбрать, следует ли обновлять запросы ресурсов контейнера поRequestsOnly
параметру или как запросы ресурсов, так и ограничения с помощьюRequestsAndLimits
этого параметра. Значение по умолчанию —RequestsAndLimits
. Если вы используетеRequestsAndLimits
этот параметр, запросы вычисляются на основе фактического использования, а ограничения вычисляются на основе текущего запроса и соотношения ограничений pod.Например, если начать с модуля pod, который запрашивает 2 ЦП и ограничивает 4 ЦП, VPA всегда задает ограничение в два раза больше, чем запросы. Тот же принцип применяется к памяти. При использовании
RequestsAndLimits
режима он может служить схемой для первоначальных запросов и ограничений ресурсов приложения.
Вы можете упростить объект VPA с помощью автоматических и вычислительных рекомендаций для ЦП и памяти.
hamster_extra-recomender.yaml
Разверните пример с помощью команды kubectl apply и укажите имя манифеста YAML.kubectl apply -f hamster_customized_recommender.yaml
Подождите, пока vpa-updater запустит новый модуль хомячки, который должен занять несколько минут. Вы можете отслеживать модули pod с помощью команды get kubectl.
kubectl get --watch pods -l app=hamster
Когда запускается новый модуль хомячки, опишите модуль pod, выполняющий команду kubectl, и просмотрите обновленные резервирования ЦП и памяти.
kubectl describe pod hamster-<exampleID>
Пример выходных данных — это фрагмент сведений, описывающих модуль pod:
State: Running Started: Wed, 28 Sep 2022 15:09:51 -0400 Ready: True Restart Count: 0 Requests: cpu: 587m memory: 262144k Environment: <none>
Чтобы просмотреть обновленные рекомендации из VPA, выполните команду kubectl, чтобы описать сведения о ресурсе хомяк-vpa.
kubectl describe vpa/hamster-vpa
Пример выходных данных — это фрагмент сведений об использовании ресурсов:
State: Running Started: Wed, 28 Sep 2022 15:09:51 -0400 Ready: True Restart Count: 0 Requests: cpu: 587m memory: 262144k Environment: <none> Spec: recommenders: Name: customized-recommender
Устранение неполадок
Чтобы диагностировать проблемы с установкой VPA, выполните следующие действия.
Проверьте, выполняются ли все системные компоненты с помощью следующей команды:
kubectl --namespace=kube-system get pods|grep vpa
Выходные данные должны содержать три модуля pod — рекомендателя, средства обновления и контроллера допуска со состоянием, показывающим состояние Running
.
Убедитесь, что системные компоненты регистрируют ошибки. Для каждого из модулей pod, возвращаемых предыдущей командой, выполните следующую команду:
kubectl --namespace=kube-system logs [pod name] | grep -e '^E[0-9]\{4\}'
Убедитесь, что определение настраиваемого ресурса было создано, выполнив следующую команду:
kubectl get customresourcedefinition | grep verticalpodautoscalers
Следующие шаги
В этой статье показано, как автоматически масштабировать использование ресурсов, таких как ЦП и память узлов кластера для соответствия требованиям приложения.
Также вы можете использовать средство горизонтального автомасштабирования pod для автоматической настройки числа pod, на которых выполняется приложение. Инструкции по использованию средства горизонтального автомасштабирования pod см. в статье Руководство. Масштабирование приложений в Службе Azure Kubernetes (AKS).
Дополнительные сведения об определениях связанных объектов VPA см. в разделе "Автомасштабирование вертикального модуля pod" [справочник по API].