PriorityLevelConfiguration v1beta3
apiVersion: flowcontrol.apiserver.k8s.io/v1beta3
import "k8s.io/api/flowcontrol/v1beta3"
PriorityLevelConfiguration
PriorityLevelConfiguration представляет конфигурацию уровня приоритета.
-
apiVersion: flowcontrol.apiserver.k8s.io/v1beta3
-
kind: PriorityLevelConfiguration
-
metadata (ObjectMeta)
metadata— стандартные метаданные объекта. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata -
spec (PriorityLevelConfigurationSpec)
spec— спецификация желаемого поведения "приоритета запроса". Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status -
status (PriorityLevelConfigurationStatus)
status— текущее состояние "приоритета запроса". Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
PriorityLevelConfigurationSpec
PriorityLevelConfigurationSpec определяет конфигурацию уровня приоритета.
-
type (строка), обязательно
typeуказывает, подлежит ли этот уровень приоритета ограничению на выполнение запросов. Значение"Exempt"означает, что запросы этого уровня приоритета не подлежат ограничению (и, следовательно, никогда не находятся в очереди) и не уменьшают емкость, доступную другим уровням приоритета. Значение"Limited"означает, что (а) запросы этого уровня приоритета подлежат ограничениям и (б) часть ограниченной емкости сервера выделяется исключительно этому уровню приоритета. Обязательно. -
exempt (ExemptPriorityLevelConfiguration)
exemptопределяет, как обрабатываются запросы для уровня приоритета освобождённого от ограничений. Это поле ДОЛЖНО быть пустым, еслиtypeравно"Limited". Это поле МОЖЕТ быть непустым, еслиtypeравно"Exempt". Если пусто иtypeравно"Exempt", то применяются значения по умолчанию дляExemptPriorityLevelConfiguration.ExemptPriorityLevelConfiguration описывает настраиваемые аспекты обработки запросов для освобождённого от ограничений уровня приоритета. В обязательном объекте конфигурации освобождённого от ограничений значения в полях здесь могут быть изменены авторизованными пользователями, в отличие от остальных
spec.-
exempt.lendablePercent (int32)
lendablePercentпредписывает долю NominalCL уровня, которую могут заимствовать другие уровни приоритета. Это значение должно быть в диапазоне от 0 до 100 включительно и по умолчанию равно 0. Количество мест, которые другие уровни могут заимствовать у этого уровня, известное как LendableConcurrencyLimit (LendableCL) этого уровня, определяется следующим образом.LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )
-
exempt.nominalConcurrencyShares (int32)
nominalConcurrencyShares(NCS) вносит вклад в вычисление NominalConcurrencyLimit (NominalCL) этого уровня. Это количество мест для выполнения, номинально зарезервированных для этого уровня приоритета. ЭТО НЕ ограничение для диспетчеризации с этого уровня приоритета, но влияет на другие уровни приоритета через механизм заимствования. Ограничение одновременности сервера (ServerCL) делится между всеми уровнями приоритета пропорционально их значениям NCS:NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[уровень приоритета k] NCS(k)
Более высокие значения означают более высокое номинальное ограничение одновременности, в ущерб всем остальным уровням приоритета. По умолчанию это поле имеет значение ноль.
-
-
limited (LimitedPriorityLevelConfiguration)
limitedопределяет, как обрабатываются запросы для уровня приоритета с ограничениями. Это поле должно быть непустым, если и только еслиtypeравно"Limited".*LimitedPriorityLevelConfiguration определяет, как обрабатываются запросы, которые подлежат ограничениям. Она решает две проблемы:
-
Как ограничиваются запросы для этого уровня приоритета?
-
Что делать с запросами, которые превышают ограничение?*
-
limited.borrowingLimitPercent (int32)
borrowingLimitPercent, если присутствует, настраивает ограничение на количество мест, которые этот уровень приоритета может заимствовать у других уровней приоритета. Ограничение известно как BorrowingConcurrencyLimit (BorrowingCL) и представляет собой предел на общее количество мест, которые этот уровень может заимствовать одновременно. Это поле содержит отношение этого предела к номинальному ограничению одновременности уровня. Когда это поле не пустое, оно должно содержать неотрицательное целое число, и предел вычисляется следующим образом.BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )
Значение этого поля может быть больше 100, подразумевая, что этот уровень приоритета может заимствовать больше мест, чем его собственное номинальное ограничение одновременности (NominalCL). Когда это поле опущено
nil, предел фактически бесконечен. -
limited.lendablePercent (int32)
lendablePercentпредписывает долю NominalCL уровня, которую могут заимствовать другие уровни приоритета. Значение этого поля должно быть в диапазоне от 0 до 100 включительно и по умолчанию равно 0. Количество мест, которые другие уровни могут заимствовать у этого уровня, известное как LendableConcurrencyLimit (LendableCL), определяется следующим образом.LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )
-
limited.limitResponse (LimitResponse)
limitResponseуказывает, что делать с запросами, которые не могут быть выполнены прямо сейчасLimitResponse определяет, как обрабатывать запросы, которые не могут быть выполнены прямо сейчас.
-
limited.limitResponse.type (строка), обязательно
type— "Queue" или "Reject". "Queue" означает, что запросы, которые не могут быть выполнены при поступлении, хранятся в очереди до тех пор, пока они не смогут быть выполнены или не будет достигнуто ограничение по очереди. "Reject" означает, что запросы, которые не могут быть выполнены при поступлении, отклоняются. Обязательно. -
limited.limitResponse.queuing (QueuingConfiguration)
queuingсодержит параметры конфигурации очереди. Это поле может быть непустым только еслиtypeравно"Queue".QueuingConfiguration содержит параметры конфигурации очереди
-
limited.limitResponse.queuing.handSize (int32)
handSize— небольшое положительное число, которое настраивает распределение запросов по очередям. При добавлении запроса в очередь на этом уровне приоритета идентификатор потока запроса (пара строк) хэшируется, и значение хэша используется для перемешивания списка очередей и раздачи руки указанного здесь размера. Запрос помещается в одну из самых коротких очередей в этой руке.handSizeне должно быть большеqueues, и должно быть значительно меньше (так чтобы несколько интенсивных потоков не насыщали большинство очередей). Смотрите документацию для пользователя для более подробных рекомендаций по настройке этого поля. По умолчанию это поле равно 8. -
limited.limitResponse.queuing.queueLengthLimit (int32)
queueLengthLimit— максимальное количество запросов, которые могут ожидать в заданной очереди этого уровня приоритета одновременно; избыточные запросы отклоняются. Это значение должно быть положительным. Если не указано, по умолчанию будет 50. -
limited.limitResponse.queuing.queues (int32)
queues— количество очередей для этого уровня приоритета. Очереди существуют независимо на каждом apiserver. Значение должно быть положительным. Установка его в 1 фактически исключает shufflesharding и, следовательно, делает метод различения ассоциированных схем потоков неважным. По умолчанию это поле равно 64.
-
-
-
limited.nominalConcurrencyShares (int32)
nominalConcurrencyShares(NCS) вносит вклад в вычисление NominalConcurrencyLimit (NominalCL) этого уровня. Это количество мест для выполнения, доступных на этом уровне приоритета. Используется как для запросов, диспетчерируемых с этого уровня приоритета, так и для запросов, диспетчерируемых с других уровней приоритета, заимствующих места с этого уровня. Ограничение одновременности сервера (ServerCL) делится среди уровней приоритета с ограничениями пропорционально их значениям NCS:NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[уровень приоритета k] NCS(k)
Более высокие значения означают более высокое номинальное ограничение одновременности, в ущерб всем остальным уровням приоритета. По умолчанию это поле имеет значение 30.
-
PriorityLevelConfigurationStatus
PriorityLevelConfigurationStatus представляет текущее состояние "приоритета запроса".
-
conditions ([]PriorityLevelConfigurationCondition)
Стратегия патча: слияние по ключу
typeКарта: уникальные значения по ключу type будут сохранены во время слияния
conditions— текущее состояние "приоритета запроса".PriorityLevelConfigurationCondition определяет состояние уровня приоритета.
-
conditions.lastTransitionTime (Time)
lastTransitionTime— последнее время, когда состояние перешло из одного статуса в другой.Time — это оболочка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Оболочки предоставляются для многих из фабричных методов, которые предлагает пакет time.
-
conditions.message (строка)
message— удобочитаемое сообщение, указывающее подробности о последнем переходе. -
conditions.reason (строка)
reason— уникальный, однословный, CamelCase причина последнего перехода состояния. -
conditions.status (строка)
status— состояние условия. Может быть True, False, Unknown. Обязательно. -
conditions.type (строка)
type— тип условия. Обязательно.
-
PriorityLevelConfigurationList
PriorityLevelConfigurationList — это список объектов PriorityLevelConfiguration.
-
apiVersion: flowcontrol.apiserver.k8s.io/v1beta3
-
kind: СписокКонфигурацийУровнейПриоритета
-
metadata (ListMeta)
metadata— стандартные метаданные объекта. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata -
items ([]КонфигурацияУровняПриоритета), обязательно
items— список приоритетов запросов.
© 2022 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2022 The Linux Foundation ®. All rights reserved.
https://v1-28.docs.kubernetes.io/docs/reference/kubernetes-api/cluster-resources/priority-level-configuration-v1beta3/