HorizontalPodAutoscaler
apiVersion: autoscaling/v2
import "k8s.io/api/autoscaling/v2"
HorizontalPodAutoscaler
HorizontalPodAutoscaler — это конфигурация горизонтального автомасштабировщика подов, который автоматически управляет количеством реплик любого ресурса, реализующего подресурс scale, на основе указанных метрик.
| Поле | Описание |
|---|---|
apiVersionstring |
APIVersion определяет версионируемую схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
kindstring |
Kind — это строковое значение, представляющее REST-ресурс, который описывает этот объект. Серверы могут определять его по конечной точке, на которую клиент отправляет запросы. Не может быть обновлено. В CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
metadataObjectMeta |
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. |
statusHorizontalPodAutoscalerStatus |
status — это текущая информация об автомасштабировщике. |
HorizontalPodAutoscalerSpec
HorizontalPodAutoscalerSpec описывает желаемую функциональность HorizontalPodAutoscaler.
| Поле | Описание |
|---|---|
behaviorHorizontalPodAutoscalerBehavior |
behavior настраивает поведение целевого ресурса при масштабировании вверх и вниз (соответственно, поля scaleUp и scaleDown). Если значение не задано, используются правила HPAScalingRules по умолчанию для масштабирования вверх и вниз. |
maxReplicas *integer |
maxReplicas — верхний предел количества реплик, до которого автомасштабировщик может увеличить масштаб. Это значение не может быть меньше minReplicas. |
metricsMetricSpec array |
metrics содержит спецификации метрик, используемых для вычисления желаемого количества реплик (будет использовано максимальное количество реплик, полученное для всех метрик). Желаемое количество реплик вычисляется умножением текущего количества подов на отношение целевого значения к текущему. Следовательно, при увеличении количества подов значения используемых метрик должны уменьшаться, и наоборот. Подробнее о том, как должны реагировать метрики каждого типа, см. в описаниях соответствующих источников метрик. Если значение не задано, по умолчанию используется метрика средней загрузки ЦП на уровне 80%. |
minReplicasinteger |
minReplicas — нижний предел количества реплик, до которого автомасштабировщик может уменьшить масштаб. По умолчанию — 1 под. Значение minReplicas может быть равно 0, если включен альфа-флаг функции HPAScaleToZero и настроена как минимум одна метрика типа Object или External. Масштабирование активно, пока доступно значение хотя бы одной метрики. |
scaleTargetRef *CrossVersionObjectReference |
scaleTargetRef указывает целевой ресурс для масштабирования и используется для определения подов, метрики которых следует собирать, а также для непосредственного изменения количества реплик. |
HorizontalPodAutoscalerStatus
HorizontalPodAutoscalerStatus описывает текущее состояние горизонтального автомасштабировщика подов.
| Поле | Описание |
|---|---|
conditionsHorizontalPodAutoscalerCondition array стратегия слияния для patch: слияние по ключу type
|
conditions — это набор условий, необходимых автомасштабировщику для масштабирования целевого ресурса; они показывают, выполнены ли эти условия. |
currentMetricsMetricStatus array |
currentMetrics — это последнее считанное состояние метрик, используемых этим автомасштабировщиком. |
currentReplicasinteger |
currentReplicas — это текущее количество реплик подов, управляемых этим автомасштабировщиком, согласно последним полученным им данным. |
desiredReplicas *integer |
desiredReplicas — это желаемое количество реплик подов, управляемых этим автомасштабировщиком, согласно последним выполненным им вычислениям. |
lastScaleTimeTime |
lastScaleTime — время последнего изменения HorizontalPodAutoscaler количества подов. Автомасштабировщик использует это значение, чтобы контролировать частоту изменения количества подов. |
observedGenerationinteger |
observedGeneration — последнее поколение, обнаруженное этим автомасштабировщиком. |
HorizontalPodAutoscalerList
HorizontalPodAutoscalerList — это список объектов горизонтального автомасштабировщика подов.
| Поле | Описание |
|---|---|
apiVersionstring |
APIVersion определяет версионируемую схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
items *HorizontalPodAutoscaler array |
items — это список объектов горизонтального автомасштабировщика подов. |
kindstring |
Kind — это строковое значение, представляющее REST-ресурс, который описывает этот объект. Серверы могут определять его по конечной точке, на которую клиент отправляет запросы. Не может быть обновлено. В CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
metadataListMeta |
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 содержит достаточно информации, чтобы идентифицировать указанный ресурс.
| Поле | Описание |
|---|---|
apiVersionstring |
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.)
| Поле | Описание |
|---|---|
policiesHPAScalingPolicy array |
policies — список возможных правил масштабирования, которые можно использовать при масштабировании. Если значение не задано, используются значения по умолчанию: - Для масштабирования вверх: разрешить удвоение количества подов или абсолютное изменение на 4 пода в течение 15 секунд. - Для масштабирования вниз: разрешить удаление всех подов в течение 15 секунд. |
selectPolicystring |
selectPolicy используется для указания правила, которое следует применить. Если значение не задано, используется значение Max по умолчанию. |
stabilizationWindowSecondsinteger |
stabilizationWindowSeconds — количество секунд, за которое учитываются предыдущие рекомендации при масштабировании вверх или вниз. Значение StabilizationWindowSeconds должно быть больше или равно нулю и меньше или равно 3600 (один час). Если значение не задано, используются значения по умолчанию: - Для масштабирования вверх: 0 (стабилизация не выполняется). - Для масштабирования вниз: 300 (длительность окна стабилизации — 300 секунд). |
toleranceQuantity |
tolerance — допустимое отклонение отношения текущего значения метрики к желаемому, в пределах которого желаемое количество реплик не изменяется (например, 0.01 для 1%). Значение должно быть больше или равно нулю. Если значение не задано, применяется допуск по умолчанию для всего кластера (по умолчанию 10%). Например, если для автомасштабирования задан целевой уровень потребления памяти 100Mi, а допуски для масштабирования вниз и вверх составляют соответственно 5% и 1%, масштабирование начнется, когда фактическое потребление станет ниже 95Mi или превысит 101Mi. Это поле бета-версии; для его использования необходимо включить флаг функции HPAConfigurableTolerance. |
HorizontalPodAutoscalerBehavior
HorizontalPodAutoscalerBehavior настраивает поведение целевого ресурса при масштабировании вверх и вниз (соответственно, поля scaleUp и scaleDown).
| Поле | Описание |
|---|---|
scaleDownHPAScalingRules |
scaleDown — правило масштабирования вниз. Если значение не задано, по умолчанию разрешается уменьшить масштаб до minReplicas подов с окном стабилизации 300 секунд (то есть используется наибольшая рекомендация за последние 300 секунд). |
scaleUpHPAScalingRules |
scaleUp — правило масштабирования вверх. Если значение не задано, по умолчанию используется большее из следующих ограничений: * увеличивать количество не более чем на 4 пода за 60 секунд * удваивать количество подов каждые 60 секунд Стабилизация не используется. |
HorizontalPodAutoscalerCondition
HorizontalPodAutoscalerCondition описывает состояние HorizontalPodAutoscaler на определенный момент времени.
| Поле | Описание |
|---|---|
lastTransitionTimeTime |
lastTransitionTime — время последнего перехода условия из одного состояния в другое |
messagestring |
message — понятное человеку объяснение с подробностями перехода |
reasonstring |
reason — причина последнего перехода условия. |
status *string |
status — состояние условия (True, False, Unknown) |
type *string |
type описывает текущее условие |
MetricIdentifier
MetricIdentifier определяет имя метрики и, при необходимости, селектор
| Поле | Описание |
|---|---|
name *string |
name — имя указанной метрики |
selectorLabelSelector |
selector — строковое представление стандартного селектора меток Kubernetes для указанной метрики. Если значение задано, оно передается серверу метрик в качестве дополнительного параметра для более точного ограничения области метрик. Если значение не задано, для сбора метрик используется только metricName. |
MetricSpec
MetricSpec задает способ масштабирования на основе одной метрики (одновременно должны быть заданы только type и одно другое соответствующее поле).
| Поле | Описание |
|---|---|
containerResourceContainerResourceMetricSource |
containerResource — метрика ресурса (например, указанного в запросах и ограничениях), известная Kubernetes и описывающая отдельный контейнер в каждом поде текущего целевого ресурса масштабирования (например, ЦП или память). Такие метрики встроены в Kubernetes и, помимо параметров масштабирования, доступных для обычных метрик отдельных подов с источником "pods", имеют специальные параметры масштабирования. |
externalExternalMetricSource |
external — глобальная метрика, не связанная ни с одним объектом Kubernetes. Она позволяет выполнять автомасштабирование на основе данных от компонентов, работающих за пределами кластера (например, длины очереди в облачной службе обмена сообщениями или числа запросов в секунду от балансировщика нагрузки за пределами кластера). |
objectObjectMetricSource |
object — метрика, описывающая отдельный объект Kubernetes (например, количество запросов в секунду для объекта Ingress). |
podsPodsMetricSource |
pods — метрика, описывающая каждый под текущего целевого ресурса масштабирования (например, количество обработанных транзакций в секунду). Перед сравнением с целевым значением эти значения усредняются. |
resourceResourceMetricSource |
resource — метрика ресурса (например, указанного в запросах и ограничениях), известная Kubernetes и описывающая каждый под текущего целевого ресурса масштабирования (например, ЦП или память). Такие метрики встроены в Kubernetes и, помимо параметров масштабирования, доступных для обычных метрик отдельных подов с источником "pods", имеют специальные параметры масштабирования. |
type *string |
type — тип источника метрики. Он должен иметь одно из значений "ContainerResource", "External", "Object", "Pods" или "Resource"; каждому значению соответствует поле объекта. |
MetricStatus
MetricStatus описывает последнее считанное состояние отдельной метрики.
| Поле | Описание |
|---|---|
containerResourceContainerResourceMetricStatus |
container resource — метрика ресурса (например, указанного в запросах и ограничениях), известная Kubernetes и описывающая отдельный контейнер в каждом поде текущего целевого ресурса масштабирования (например, ЦП или память). Такие метрики встроены в Kubernetes и, помимо параметров масштабирования, доступных для обычных метрик отдельных подов с источником "pods", имеют специальные параметры масштабирования. |
externalExternalMetricStatus |
external — глобальная метрика, не связанная ни с одним объектом Kubernetes. Она позволяет выполнять автомасштабирование на основе данных от компонентов, работающих за пределами кластера (например, длины очереди в облачной службе обмена сообщениями или числа запросов в секунду от балансировщика нагрузки за пределами кластера). |
objectObjectMetricStatus |
object — метрика, описывающая отдельный объект Kubernetes (например, количество запросов в секунду для объекта Ingress). |
podsPodsMetricStatus |
pods — метрика, описывающая каждый под текущего целевого ресурса масштабирования (например, количество обработанных транзакций в секунду). Перед сравнением с целевым значением эти значения усредняются. |
resourceResourceMetricStatus |
resource — метрика ресурса (например, указанного в запросах и ограничениях), известная Kubernetes и описывающая каждый под текущего целевого ресурса масштабирования (например, ЦП или память). Такие метрики встроены в Kubernetes и, помимо параметров масштабирования, доступных для обычных метрик отдельных подов с источником "pods", имеют специальные параметры масштабирования. |
type *string |
type — тип источника метрики. Он принимает одно из значений "ContainerResource", "External", "Object", "Pods" или "Resource"; каждому значению соответствует поле объекта. |
MetricTarget
MetricTarget определяет целевое значение, среднее значение или средний уровень использования определенной метрики
| Поле | Описание |
|---|---|
averageUtilizationinteger |
averageUtilization — целевое среднее значение метрики ресурса для всех соответствующих подов, выраженное в процентах от запрошенного значения ресурса для подов. В настоящее время допустимо только для источника метрики типа Resource |
averageValueQuantity |
averageValue — целевое среднее значение метрики для всех соответствующих подов (в виде величины) |
type *string |
type указывает, является ли тип метрики Utilization, Value или AverageValue |
valueQuantity |
value — целевое значение метрики (в виде величины). |
MetricValueStatus
MetricValueStatus содержит текущее значение метрики
| Поле | Описание |
|---|---|
averageUtilizationinteger |
currentAverageUtilization — текущее среднее значение метрики ресурса для всех соответствующих подов, выраженное в процентах от запрошенного значения ресурса для подов. |
averageValueQuantity |
averageValue — текущее среднее значение метрики для всех соответствующих подов (в виде величины) |
valueQuantity |
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/