PriorityLevelConfiguration
apiVersion: flowcontrol.apiserver.k8s.io/v1
import "k8s.io/api/flowcontrol/v1"
PriorityLevelConfiguration
PriorityLevelConfiguration представляет конфигурацию уровня приоритета.
| Поле | Описание |
|---|---|
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 |
specPriorityLevelConfigurationSpec |
`spec` — описание требуемого поведения «приоритета запросов». Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status |
statusPriorityLevelConfigurationStatus |
`status` — текущее состояние «приоритета запросов». Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status |
PriorityLevelConfigurationSpec
PriorityLevelConfigurationSpec задаёт конфигурацию уровня приоритета.
| Поле | Описание |
|---|---|
exemptExemptPriorityLevelConfiguration |
`exempt` задаёт способ обработки запросов для освобождённого от ограничений уровня приоритета. Это поле ДОЛЖНО быть пустым, если `type` имеет значение `"Limited"`. Это поле МОЖЕТ быть непустым, если `type` имеет значение `"Exempt"`. Если поле пусто и `type` имеет значение `"Exempt"`, применяются значения по умолчанию для `ExemptPriorityLevelConfiguration`. |
limitedLimitedPriorityLevelConfiguration |
`limited` задаёт способ обработки запросов для уровня приоритета Limited. Это поле должно быть непустым тогда и только тогда, когда `type` имеет значение `"Limited"`. |
type *string |
`type` указывает, подлежит ли этот уровень приоритета ограничению выполнения запросов. Значение `"Exempt"` означает, что запросы этого уровня приоритета не ограничиваются (и поэтому никогда не помещаются в очередь) и не уменьшают пропускную способность, доступную другим уровням приоритета. Значение `"Limited"` означает, что (a) запросы этого уровня приоритета _подлежат_ ограничениям и (b) часть ограниченной пропускной способности сервера выделяется исключительно этому уровню приоритета. Обязательное поле. |
PriorityLevelConfigurationStatus
PriorityLevelConfigurationStatus представляет текущее состояние «приоритета запросов».
| Поле | Описание |
|---|---|
conditionsPriorityLevelConfigurationCondition array стратегия исправления: объединение по ключу type
|
`conditions` — текущее состояние «приоритета запросов». |
PriorityLevelConfigurationList
PriorityLevelConfigurationList — это список объектов PriorityLevelConfiguration.
| Поле | Описание |
|---|---|
apiVersionstring |
APIVersion определяет версионированную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
items *PriorityLevelConfiguration array |
`items` — список приоритетов запросов. |
kindstring |
Kind — строковое значение, представляющее ресурс REST, который представляет этот объект. Серверы могут определить его по конечной точке, на которую клиент отправляет запросы. Не может быть обновлено. В CamelCase. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
metadataListMeta |
`metadata` — стандартные метаданные объекта. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
ExemptPriorityLevelConfiguration
ExemptPriorityLevelConfiguration описывает настраиваемые параметры обработки освобождённых от ограничений запросов. В обязательном объекте конфигурации освобождённого уровня авторизованные пользователи могут изменять значения указанных здесь полей, в отличие от остальных полей spec.
| Поле | Описание |
|---|---|
lendablePercentinteger |
`lendablePercent` задаёт долю NominalCL уровня, которую могут заимствовать другие уровни приоритета. Значение этого поля должно находиться в диапазоне от 0 до 100 включительно; значение по умолчанию — 0. Число мест, которые другие уровни могут заимствовать у этого уровня, называется его LendableConcurrencyLimit (LendableCL) и определяется следующим образом: LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 ) |
nominalConcurrencySharesinteger |
`nominalConcurrencyShares` (NCS) участвует в вычислении NominalConcurrencyLimit (NominalCL) этого уровня. Это число мест для выполнения, номинально зарезервированных для этого уровня приоритета. Это НЕ ограничивает распределение запросов этого уровня приоритета, но влияет на другие уровни приоритета через механизм заимствования. Лимит параллелизма сервера (ServerCL) распределяется между всеми уровнями приоритета пропорционально их значениям NCS: NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) Чем больше значение, тем выше номинальный лимит параллелизма за счёт всех остальных уровней приоритета. Значение этого поля по умолчанию равно нулю. |
LimitResponse
LimitResponse определяет способ обработки запросов, которые в данный момент невозможно выполнить.
| Поле | Описание |
|---|---|
queuingQueuingConfiguration |
`queuing` содержит параметры конфигурации очередей. Это поле может быть непустым только в том случае, если `type` имеет значение `"Queue"`. |
type *string |
`type` — это `"Queue"` или `"Reject"`. `"Queue"` означает, что запросы, которые невозможно выполнить при поступлении, помещаются в очередь до тех пор, пока их не удастся выполнить или не будет достигнут лимит очереди. `"Reject"` означает, что запросы, которые невозможно выполнить при поступлении, отклоняются. Обязательное поле. |
LimitedPriorityLevelConfiguration
LimitedPriorityLevelConfiguration задаёт способ обработки запросов, на которые распространяются ограничения. Конфигурация охватывает два вопроса:
- Как ограничивается число запросов для этого уровня приоритета?
- Что следует делать с запросами, превышающими лимит?
| Поле | Описание |
|---|---|
borrowingLimitPercentinteger |
`borrowingLimitPercent`, если задано, устанавливает ограничение на число мест, которые этот уровень приоритета может заимствовать у других уровней приоритета. Это ограничение называется BorrowingConcurrencyLimit (BorrowingCL) данного уровня и ограничивает общее число мест, которые этот уровень может заимствовать одновременно. Значение этого поля задаёт отношение такого лимита к номинальному лимиту параллелизма уровня. Если поле не равно nil, оно должно содержать неотрицательное целое число, а лимит вычисляется следующим образом: BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 ) Значение этого поля может быть больше 100, что означает, что этот уровень приоритета может заимствовать число мест, превышающее его собственный номинальный лимит параллелизма (NominalCL). Если для этого поля задано `nil`, лимит фактически неограничен. |
lendablePercentinteger |
`lendablePercent` задаёт долю NominalCL уровня, которую могут заимствовать другие уровни приоритета. Значение этого поля должно находиться в диапазоне от 0 до 100 включительно; значение по умолчанию — 0. Число мест, которые другие уровни могут заимствовать у этого уровня, называется его LendableConcurrencyLimit (LendableCL) и определяется следующим образом: LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 ) |
limitResponseLimitResponse |
`limitResponse` указывает, что делать с запросами, которые в данный момент невозможно выполнить |
nominalConcurrencySharesinteger |
`nominalConcurrencyShares` (NCS) участвует в вычислении NominalConcurrencyLimit (NominalCL) этого уровня. Это число мест для выполнения, доступных на этом уровне приоритета. Эти места используются как для запросов, распределяемых с этого уровня приоритета, так и для запросов, распределяемых с других уровней приоритета, заимствующих места у этого уровня. Лимит параллелизма сервера (ServerCL) распределяется между уровнями приоритета Limited пропорционально их значениям NCS: NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k) Чем больше значение, тем выше номинальный лимит параллелизма за счёт всех остальных уровней приоритета. Если значение не указано, по умолчанию используется 30. Если задать для этого поля ноль, можно создать «изоляцию» для этого уровня приоритета, чтобы удерживать один или несколько запросов |
PriorityLevelConfigurationCondition
PriorityLevelConfigurationCondition определяет условие уровня приоритета.
| Поле | Описание |
|---|---|
lastTransitionTimeTime |
`lastTransitionTime` — время последнего перехода условия из одного состояния в другое. |
messagestring |
`message` — понятное пользователю сообщение с подробной информацией о последнем переходе. |
reasonstring |
`reason` — уникальная причина последнего перехода условия, состоящая из одного слова в CamelCase. |
statusstring |
`status` — состояние условия. Возможные значения: True, False, Unknown. Обязательное поле. |
typestring |
`type` — тип условия. Обязательное поле. |
QueuingConfiguration
QueuingConfiguration содержит параметры конфигурации очередей
| Поле | Описание |
|---|---|
handSizeinteger |
`handSize` — небольшое положительное число, задающее перемешивание запросов по очередям методом shuffle sharding. При постановке запроса в очередь этого уровня приоритета идентификатор потока запроса (пара строк) хешируется, а полученное значение хеша используется для перемешивания списка очередей и формирования набора указанного здесь размера. Запрос помещается в одну из самых коротких очередей этого набора. Значение `handSize` не должно превышать `queues` и должно быть значительно меньше этого значения (чтобы несколько потоков с высокой нагрузкой не перегружали большую часть очередей). Рекомендации по настройке этого поля см. в пользовательской документации. Значение этого поля по умолчанию равно 8. |
queueLengthLimitinteger |
`queueLengthLimit` — максимальное число запросов, которым разрешено одновременно ожидать в отдельной очереди этого уровня приоритета; избыточные запросы отклоняются. Значение должно быть положительным. Если значение не указано, по умолчанию используется 50. |
queuesinteger |
`queues` — число очередей для этого уровня приоритета. Очереди существуют независимо на каждом apiserver. Значение должно быть положительным. Значение 1 фактически отключает shuffle sharding, поэтому метод различения, заданный в связанных схемах потоков, не имеет значения. Значение этого поля по умолчанию равно 64. |
© 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/flowcontrol/priority-level-configuration-v1/