УровеньПриоритетаНастройки v1beta3
apiVersion: flowcontrol.apiserver.k8s.io/v1beta3
import "k8s.io/api/flowcontrol/v1beta3"
УровеньПриоритетаНастройки
УровеньПриоритетаНастройки представляет конфигурацию уровня приоритета.
-
apiVersion: flowcontrol.apiserver.k8s.io/v1beta3
-
kind: УровеньПриоритетаНастройки
-
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"означает, что (а) запросы данного уровня приоритета ограничены, и (б) часть ограниченных ресурсов сервера выделена исключительно для данного уровня приоритета. Обязательно. -
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задаёт долю номинального лимита одновременной обработки уровня, которую могут занять другие уровни приоритета. Значение этого поля должно находиться в диапазоне от 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 фактически исключает перемешивание фрагментации и, таким образом, делает метод различения связанных схем потоков неактуальным. Значение по умолчанию этого поля равно 64.
-
-
-
limited.nominalConcurrencyShares (int32)
nominalConcurrencyShares(NCS) вносит вклад в вычисление NominalConcurrencyLimit (NominalCL) этого уровня. Это количество мест для выполнения, доступных на этом уровне приоритета. Это используется как для запросов, отправленных с этого уровня приоритета, так и для запросов, отправленных с других уровней приоритета, занимающих места с этого уровня. Лимит одновременной обработки сервера (ServerCL) делится между уровнями приоритета Limited пропорционально их значениям NCS:NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[limited priority level k] NCS(k)
Более крупные числа означают больший номинальный лимит одновременной обработки, в ущерб каждому другому уровню приоритета Limited. Значение по умолчанию этого поля равно 30.
-
PriorityLevelConfigurationStatus
PriorityLevelConfigurationStatus представляет текущее состояние "приоритета запроса".
-
conditions ([]PriorityLevelConfigurationCondition)
Стратегия исправления: слияние по ключу
typeКарта: уникальные значения по ключу type будут сохранены во время слияния
conditions— текущее состояние "приоритета запроса".PriorityLevelConfigurationCondition определяет состояние уровня приоритета.
-
conditions.lastTransitionTime (Time)
lastTransitionTime— последнее время, когда состояние перешло из одного статуса в другой.Time — это обёртка вокруг time.Time, которая поддерживает правильную сериализацию в YAML и JSON. Обёртки предоставляются для многих фабричных методов, которые предлагает пакет времени.
-
conditions.message (строка)
message— удобочитаемое сообщение, указывающее подробности о последнем переходе. -
conditions.reason (строка)
reason— уникальный, однословный, CamelCase-reason для последнего перехода состояния. -
conditions.status (строка)
status— статус состояния. Может быть True, False, Unknown. Обязательно. -
conditions.type (строка)
type— тип состояния. Обязательно.
-
СписокУровнейПриоритетаНастроек
СписокУровнейПриоритетаНастроек — список объектов 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 ([]PriorityLevelConfiguration), обязательно
items— список приоритетов запросов.
© 2022 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2022 The Linux Foundation ®. All rights reserved.
https://v1-26.docs.kubernetes.io/docs/reference/kubernetes-api/cluster-resources/priority-level-configuration-v1beta3/