Spec-Zone.ru › Kubernetes

HorizontalPodAutoscaler

HorizontalPodAutoscaler — это конфигурация горизонтального автомасштабировщика подов, который автоматически управляет количеством реплик любого ресурса, реализующего подресурс scale, на основе указанных метрик.

apiVersion: autoscaling/v2

import "k8s.io/api/autoscaling/v2"

HorizontalPodAutoscaler

HorizontalPodAutoscaler — это конфигурация горизонтального автомасштабировщика подов, который автоматически управляет количеством реплик любого ресурса, реализующего подресурс scale, на основе указанных метрик.

Поле Описание
apiVersion
string
APIVersion определяет версионируемую схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind
string
Kind — это строковое значение, представляющее REST-ресурс, который описывает этот объект. Серверы могут определять его по конечной точке, на которую клиент отправляет запросы. Не может быть обновлено. В CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
ObjectMeta
metadata — это стандартные метаданные объекта. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec *
HorizontalPodAutoscalerSpec
spec — это спецификация поведения автомасштабировщика. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status.
status
HorizontalPodAutoscalerStatus
status — это текущая информация об автомасштабировщике.

HorizontalPodAutoscalerSpec

HorizontalPodAutoscalerSpec описывает желаемую функциональность HorizontalPodAutoscaler.

Поле Описание
behavior
HorizontalPodAutoscalerBehavior
behavior настраивает поведение целевого ресурса при масштабировании вверх и вниз (соответственно, поля scaleUp и scaleDown). Если значение не задано, используются правила HPAScalingRules по умолчанию для масштабирования вверх и вниз.
maxReplicas *
integer
maxReplicas — верхний предел количества реплик, до которого автомасштабировщик может увеличить масштаб. Это значение не может быть меньше minReplicas.
metrics
MetricSpec array
metrics содержит спецификации метрик, используемых для вычисления желаемого количества реплик (будет использовано максимальное количество реплик, полученное для всех метрик). Желаемое количество реплик вычисляется умножением текущего количества подов на отношение целевого значения к текущему. Следовательно, при увеличении количества подов значения используемых метрик должны уменьшаться, и наоборот. Подробнее о том, как должны реагировать метрики каждого типа, см. в описаниях соответствующих источников метрик. Если значение не задано, по умолчанию используется метрика средней загрузки ЦП на уровне 80%.
minReplicas
integer
minReplicas — нижний предел количества реплик, до которого автомасштабировщик может уменьшить масштаб. По умолчанию — 1 под. Значение minReplicas может быть равно 0, если включен альфа-флаг функции HPAScaleToZero и настроена как минимум одна метрика типа Object или External. Масштабирование активно, пока доступно значение хотя бы одной метрики.
scaleTargetRef *
CrossVersionObjectReference
scaleTargetRef указывает целевой ресурс для масштабирования и используется для определения подов, метрики которых следует собирать, а также для непосредственного изменения количества реплик.

HorizontalPodAutoscalerStatus

HorizontalPodAutoscalerStatus описывает текущее состояние горизонтального автомасштабировщика подов.

Поле Описание
conditions
HorizontalPodAutoscalerCondition array
стратегия слияния для patch: слияние по ключу type
conditions — это набор условий, необходимых автомасштабировщику для масштабирования целевого ресурса; они показывают, выполнены ли эти условия.
currentMetrics
MetricStatus array
currentMetrics — это последнее считанное состояние метрик, используемых этим автомасштабировщиком.
currentReplicas
integer
currentReplicas — это текущее количество реплик подов, управляемых этим автомасштабировщиком, согласно последним полученным им данным.
desiredReplicas *
integer
desiredReplicas — это желаемое количество реплик подов, управляемых этим автомасштабировщиком, согласно последним выполненным им вычислениям.
lastScaleTime
Time
lastScaleTime — время последнего изменения HorizontalPodAutoscaler количества подов. Автомасштабировщик использует это значение, чтобы контролировать частоту изменения количества подов.
observedGeneration
integer
observedGeneration — последнее поколение, обнаруженное этим автомасштабировщиком.

HorizontalPodAutoscalerList

HorizontalPodAutoscalerList — это список объектов горизонтального автомасштабировщика подов.

Поле Описание
apiVersion
string
APIVersion определяет версионируемую схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
items *
HorizontalPodAutoscaler array
items — это список объектов горизонтального автомасштабировщика подов.
kind
string
Kind — это строковое значение, представляющее REST-ресурс, который описывает этот объект. Серверы могут определять его по конечной точке, на которую клиент отправляет запросы. Не может быть обновлено. В CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
ListMeta
metadata — это стандартные метаданные списка.

ContainerResourceMetricSource

ContainerResourceMetricSource описывает масштабирование на основе метрики ресурса, известной Kubernetes и заданной в запросах и ограничениях, которая характеризует каждый под текущего целевого ресурса масштабирования (например, ЦП или память). Перед сравнением с целевым значением эти значения усредняются. Такие метрики встроены в Kubernetes и, помимо параметров масштабирования, доступных для обычных метрик отдельных подов с источником "pods", имеют специальные параметры масштабирования. Следует задать только один тип "target".

Поле Описание
container *
string
container — имя контейнера в подах целевого ресурса масштабирования
name *
string
name — имя соответствующего ресурса.
target *
MetricTarget
target задает целевое значение для указанной метрики

ContainerResourceMetricStatus

ContainerResourceMetricStatus указывает текущее значение метрики ресурса, известной Kubernetes и заданной в запросах и ограничениях, которая характеризует отдельный контейнер в каждом поде текущего целевого ресурса масштабирования (например, ЦП или память). Такие метрики встроены в Kubernetes и, помимо параметров масштабирования, доступных для обычных метрик отдельных подов с источником "pods", имеют специальные параметры масштабирования.

Поле Описание
container *
string
container — имя контейнера в подах целевого ресурса масштабирования
current *
MetricValueStatus
current содержит текущее значение указанной метрики
name *
string
name — имя соответствующего ресурса.

CrossVersionObjectReference

CrossVersionObjectReference содержит достаточно информации, чтобы идентифицировать указанный ресурс.

Поле Описание
apiVersion
string
apiVersion — версия API указанного объекта
kind *
string
kind — тип указанного объекта. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
name *
string
name — имя указанного объекта. Подробнее: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

ExternalMetricSource

ExternalMetricSource описывает масштабирование на основе метрики, не связанной ни с одним объектом Kubernetes (например, длины очереди в облачной службе обмена сообщениями или числа запросов в секунду от балансировщика нагрузки, работающего за пределами кластера).

Поле Описание
metric *
MetricIdentifier
metric идентифицирует целевую метрику по имени и селектору
target *
MetricTarget
target задает целевое значение для указанной метрики

ExternalMetricStatus

ExternalMetricStatus указывает текущее значение глобальной метрики, не связанной ни с одним объектом Kubernetes.

Поле Описание
current *
MetricValueStatus
current содержит текущее значение указанной метрики
metric *
MetricIdentifier
metric идентифицирует целевую метрику по имени и селектору

HPAScalingPolicy

HPAScalingPolicy — это отдельное правило, которое должно выполняться в течение указанного предшествующего интервала времени.

Поле Описание
periodSeconds *
integer
periodSeconds задает интервал времени, в течение которого должно выполняться правило. Значение periodSeconds должно быть больше нуля и меньше или равно 1800 (30 минут).
type *
string
type используется для указания правила масштабирования.
value *
integer
value содержит величину изменения, разрешенного правилом. Она должна быть больше нуля

HPAScalingRules

HPAScalingRules настраивает поведение масштабирования в одном направлении с помощью правил масштабирования и настраиваемого допуска метрик.

Правила масштабирования применяются после вычисления DesiredReplicas для HPA на основе метрик. Они могут ограничивать скорость масштабирования с помощью правил. Чтобы предотвратить колебания, можно задать окно стабилизации: тогда количество реплик изменяется не мгновенно, а выбирается наиболее безопасное значение в пределах этого окна.

Допуск применяется к значениям метрик и предотвращает слишком активное масштабирование при небольших колебаниях метрик. (Обратите внимание: для задания допуска необходимо включить бета-флаг функции HPAConfigurableTolerance.)

Поле Описание
policies
HPAScalingPolicy array
policies — список возможных правил масштабирования, которые можно использовать при масштабировании. Если значение не задано, используются значения по умолчанию: - Для масштабирования вверх: разрешить удвоение количества подов или абсолютное изменение на 4 пода в течение 15 секунд. - Для масштабирования вниз: разрешить удаление всех подов в течение 15 секунд.
selectPolicy
string
selectPolicy используется для указания правила, которое следует применить. Если значение не задано, используется значение Max по умолчанию.
stabilizationWindowSeconds
integer
stabilizationWindowSeconds — количество секунд, за которое учитываются предыдущие рекомендации при масштабировании вверх или вниз. Значение StabilizationWindowSeconds должно быть больше или равно нулю и меньше или равно 3600 (один час). Если значение не задано, используются значения по умолчанию: - Для масштабирования вверх: 0 (стабилизация не выполняется). - Для масштабирования вниз: 300 (длительность окна стабилизации — 300 секунд).
tolerance
Quantity
tolerance — допустимое отклонение отношения текущего значения метрики к желаемому, в пределах которого желаемое количество реплик не изменяется (например, 0.01 для 1%). Значение должно быть больше или равно нулю. Если значение не задано, применяется допуск по умолчанию для всего кластера (по умолчанию 10%). Например, если для автомасштабирования задан целевой уровень потребления памяти 100Mi, а допуски для масштабирования вниз и вверх составляют соответственно 5% и 1%, масштабирование начнется, когда фактическое потребление станет ниже 95Mi или превысит 101Mi. Это поле бета-версии; для его использования необходимо включить флаг функции HPAConfigurableTolerance.

HorizontalPodAutoscalerBehavior

HorizontalPodAutoscalerBehavior настраивает поведение целевого ресурса при масштабировании вверх и вниз (соответственно, поля scaleUp и scaleDown).

Поле Описание
scaleDown
HPAScalingRules
scaleDown — правило масштабирования вниз. Если значение не задано, по умолчанию разрешается уменьшить масштаб до minReplicas подов с окном стабилизации 300 секунд (то есть используется наибольшая рекомендация за последние 300 секунд).
scaleUp
HPAScalingRules
scaleUp — правило масштабирования вверх. Если значение не задано, по умолчанию используется большее из следующих ограничений: * увеличивать количество не более чем на 4 пода за 60 секунд * удваивать количество подов каждые 60 секунд Стабилизация не используется.

HorizontalPodAutoscalerCondition

HorizontalPodAutoscalerCondition описывает состояние HorizontalPodAutoscaler на определенный момент времени.

Поле Описание
lastTransitionTime
Time
lastTransitionTime — время последнего перехода условия из одного состояния в другое
message
string
message — понятное человеку объяснение с подробностями перехода
reason
string
reason — причина последнего перехода условия.
status *
string
status — состояние условия (True, False, Unknown)
type *
string
type описывает текущее условие

MetricIdentifier

MetricIdentifier определяет имя метрики и, при необходимости, селектор

Поле Описание
name *
string
name — имя указанной метрики
selector
LabelSelector
selector — строковое представление стандартного селектора меток Kubernetes для указанной метрики. Если значение задано, оно передается серверу метрик в качестве дополнительного параметра для более точного ограничения области метрик. Если значение не задано, для сбора метрик используется только metricName.

MetricSpec

MetricSpec задает способ масштабирования на основе одной метрики (одновременно должны быть заданы только type и одно другое соответствующее поле).

Поле Описание
containerResource
ContainerResourceMetricSource
containerResource — метрика ресурса (например, указанного в запросах и ограничениях), известная Kubernetes и описывающая отдельный контейнер в каждом поде текущего целевого ресурса масштабирования (например, ЦП или память). Такие метрики встроены в Kubernetes и, помимо параметров масштабирования, доступных для обычных метрик отдельных подов с источником "pods", имеют специальные параметры масштабирования.
external
ExternalMetricSource
external — глобальная метрика, не связанная ни с одним объектом Kubernetes. Она позволяет выполнять автомасштабирование на основе данных от компонентов, работающих за пределами кластера (например, длины очереди в облачной службе обмена сообщениями или числа запросов в секунду от балансировщика нагрузки за пределами кластера).
object
ObjectMetricSource
object — метрика, описывающая отдельный объект Kubernetes (например, количество запросов в секунду для объекта Ingress).
pods
PodsMetricSource
pods — метрика, описывающая каждый под текущего целевого ресурса масштабирования (например, количество обработанных транзакций в секунду). Перед сравнением с целевым значением эти значения усредняются.
resource
ResourceMetricSource
resource — метрика ресурса (например, указанного в запросах и ограничениях), известная Kubernetes и описывающая каждый под текущего целевого ресурса масштабирования (например, ЦП или память). Такие метрики встроены в Kubernetes и, помимо параметров масштабирования, доступных для обычных метрик отдельных подов с источником "pods", имеют специальные параметры масштабирования.
type *
string
type — тип источника метрики. Он должен иметь одно из значений "ContainerResource", "External", "Object", "Pods" или "Resource"; каждому значению соответствует поле объекта.

MetricStatus

MetricStatus описывает последнее считанное состояние отдельной метрики.

Поле Описание
containerResource
ContainerResourceMetricStatus
container resource — метрика ресурса (например, указанного в запросах и ограничениях), известная Kubernetes и описывающая отдельный контейнер в каждом поде текущего целевого ресурса масштабирования (например, ЦП или память). Такие метрики встроены в Kubernetes и, помимо параметров масштабирования, доступных для обычных метрик отдельных подов с источником "pods", имеют специальные параметры масштабирования.
external
ExternalMetricStatus
external — глобальная метрика, не связанная ни с одним объектом Kubernetes. Она позволяет выполнять автомасштабирование на основе данных от компонентов, работающих за пределами кластера (например, длины очереди в облачной службе обмена сообщениями или числа запросов в секунду от балансировщика нагрузки за пределами кластера).
object
ObjectMetricStatus
object — метрика, описывающая отдельный объект Kubernetes (например, количество запросов в секунду для объекта Ingress).
pods
PodsMetricStatus
pods — метрика, описывающая каждый под текущего целевого ресурса масштабирования (например, количество обработанных транзакций в секунду). Перед сравнением с целевым значением эти значения усредняются.
resource
ResourceMetricStatus
resource — метрика ресурса (например, указанного в запросах и ограничениях), известная Kubernetes и описывающая каждый под текущего целевого ресурса масштабирования (например, ЦП или память). Такие метрики встроены в Kubernetes и, помимо параметров масштабирования, доступных для обычных метрик отдельных подов с источником "pods", имеют специальные параметры масштабирования.
type *
string
type — тип источника метрики. Он принимает одно из значений "ContainerResource", "External", "Object", "Pods" или "Resource"; каждому значению соответствует поле объекта.

MetricTarget

MetricTarget определяет целевое значение, среднее значение или средний уровень использования определенной метрики

Поле Описание
averageUtilization
integer
averageUtilization — целевое среднее значение метрики ресурса для всех соответствующих подов, выраженное в процентах от запрошенного значения ресурса для подов. В настоящее время допустимо только для источника метрики типа Resource
averageValue
Quantity
averageValue — целевое среднее значение метрики для всех соответствующих подов (в виде величины)
type *
string
type указывает, является ли тип метрики Utilization, Value или AverageValue
value
Quantity
value — целевое значение метрики (в виде величины).

MetricValueStatus

MetricValueStatus содержит текущее значение метрики

Поле Описание
averageUtilization
integer
currentAverageUtilization — текущее среднее значение метрики ресурса для всех соответствующих подов, выраженное в процентах от запрошенного значения ресурса для подов.
averageValue
Quantity
averageValue — текущее среднее значение метрики для всех соответствующих подов (в виде величины)
value
Quantity
value — текущее значение метрики (в виде величины).

ObjectMetricSource

ObjectMetricSource описывает масштабирование на основе метрики, характеризующей объект Kubernetes (например, количества запросов в секунду для объекта Ingress).

Поле Описание
describedObject *
CrossVersionObjectReference
describedObject задает описание объекта, например его тип, имя и apiVersion
metric *
MetricIdentifier
metric идентифицирует целевую метрику по имени и селектору
target *
MetricTarget
target задает целевое значение для указанной метрики

ObjectMetricStatus

ObjectMetricStatus указывает текущее значение метрики, характеризующей объект Kubernetes (например, количества запросов в секунду для объекта Ingress).

Поле Описание
current *
MetricValueStatus
current содержит текущее значение указанной метрики
describedObject *
CrossVersionObjectReference
DescribedObject задает описание объекта, например его тип, имя и apiVersion
metric *
MetricIdentifier
metric идентифицирует целевую метрику по имени и селектору

PodsMetricSource

PodsMetricSource описывает масштабирование на основе метрики, характеризующей каждый под текущего целевого ресурса масштабирования (например, количества обработанных транзакций в секунду). Перед сравнением с целевым значением эти значения усредняются.

Поле Описание
metric *
MetricIdentifier
metric идентифицирует целевую метрику по имени и селектору
target *
MetricTarget
target задает целевое значение для указанной метрики

PodsMetricStatus

PodsMetricStatus указывает текущее значение метрики, характеризующей каждый под текущего целевого ресурса масштабирования (например, количества обработанных транзакций в секунду).

Поле Описание
current *
MetricValueStatus
current содержит текущее значение указанной метрики
metric *
MetricIdentifier
metric идентифицирует целевую метрику по имени и селектору

ResourceMetricSource

ResourceMetricSource описывает масштабирование на основе метрики ресурса, известной Kubernetes и заданной в запросах и ограничениях, которая характеризует каждый под текущего целевого ресурса масштабирования (например, ЦП или память). Перед сравнением с целевым значением эти значения усредняются. Такие метрики встроены в Kubernetes и, помимо параметров масштабирования, доступных для обычных метрик отдельных подов с источником "pods", имеют специальные параметры масштабирования. Следует задать только один тип "target".

Поле Описание
name *
string
name — имя соответствующего ресурса.
target *
MetricTarget
target задает целевое значение для указанной метрики

ResourceMetricStatus

ResourceMetricStatus указывает текущее значение метрики ресурса, известной Kubernetes и заданной в запросах и ограничениях, которая характеризует каждый под текущего целевого ресурса масштабирования (например, ЦП или память). Такие метрики встроены в Kubernetes и, помимо параметров масштабирования, доступных для обычных метрик отдельных подов с источником "pods", имеют специальные параметры масштабирования.

Поле Описание
current *
MetricValueStatus
current содержит текущее значение указанной метрики
name *
string
name — имя соответствующего ресурса.

© 2026 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2026 The Linux Foundation ®. All rights reserved.
https://kubernetes.io/docs/reference/kubernetes-api/autoscaling/horizontal-pod-autoscaler-v2/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API