Spec-Zone.ru › Kubernetes

PriorityLevelConfiguration

PriorityLevelConfiguration представляет конфигурацию уровня приоритета.

apiVersion: flowcontrol.apiserver.k8s.io/v1

import "k8s.io/api/flowcontrol/v1"

PriorityLevelConfiguration

PriorityLevelConfiguration представляет конфигурацию уровня приоритета.

  • apiVersion: flowcontrol.apiserver.k8s.io/v1

  • 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 задаёт конфигурацию уровня приоритета.

  • 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 определяет, как обрабатываются запросы для уровня приоритета Limited. Это поле должно быть непустым тогда и только тогда, когда type равно "Limited".

    *LimitedPriorityLevelConfiguration определяет, как обрабатывать запросы, которые ограничены. Он решает две проблемы:

    • Как ограничиваются запросы для этого уровня приоритета?

    • Что делать с запросами, которые превышают предел?*

    • limited.borrowingLimitPercent (int32)

      borrowingLimitPercent, если присутствует, настраивает ограничение на количество мест, которые этот уровень приоритета может заимствовать у других уровней приоритета. Это ограничение известно как BorrowingConcurrencyLimit (BorrowingCL) и является ограничением общего количества мест, которые этот уровень может заимствовать одновременно. Это поле содержит отношение этого ограничения к номинальному пределу одновременности уровня. Когда это поле не равно null, оно должно содержать неотрицательное целое число, и ограничение вычисляется следующим образом.

      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 (string), required

        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 — количество очередей для этого уровня приоритета. Очереди существуют независимо на каждом apiserвере. Значение должно быть положительным. Установка его в 1 фактически исключает shufflesharding и, следовательно, делает метод различения связанных схем потоков неважным. По умолчанию это поле равно 64.

    • limited.nominalConcurrencyShares (int32)

      nominalConcurrencyShares (NCS) вносит вклад в вычисление NominalConcurrencyLimit (NominalCL) этого уровня. Это количество мест выполнения, доступных на этом уровне приоритета. Это используется как для запросов, отправленных с этого уровня приоритета, так и для запросов, отправленных с других уровней приоритета, заимствующих места с этого уровня. Предельная одновременность сервера (ServerCL) делится среди уровней приоритета Limited пропорционально значениям NCS:

      NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[уровень приоритета k] NCS(k)

      Более высокие числа означают больший номинальный предел одновременности за счёт каждого другого уровня приоритета.

      Если не указано, это поле имеет значение по умолчанию 30.

      Установка этого поля в ноль поддерживает создание «тюрьмы» для этого уровня приоритета, используемой для удержания некоторых запросов.

  • type (string), required

    type указывает, ограничен ли этот уровень приоритета при выполнении запросов. Значение "Exempt" означает, что запросы этого уровня приоритета не ограничены (и, следовательно, никогда не находятся в очереди) и не уменьшают доступную ёмкость для других уровней приоритета. Значение "Limited" означает, что (а) запросы этого уровня приоритета ограничены, и (б) часть ограниченной ёмкости сервера выделяется исключительно этому уровню приоритета. Обязательно.

PriorityLevelConfigurationStatus

PriorityLevelConfigurationStatus представляет текущее состояние "приоритета запроса".

  • conditions ([]PriorityLevelConfigurationCondition)

    Стратегия исправления: слияние по ключу type

    Карта: уникальные значения по ключу type будут сохранены при слиянии

    conditions — текущее состояние "приоритета запроса".

    PriorityLevelConfigurationCondition определяет состояние уровня приоритета.

    • conditions.lastTransitionTime (Time)

      lastTransitionTime — последнее время, когда условие перешло из одного состояния в другое.

      Time — это оболочка вокруг time.Time, которая поддерживает правильную маршализацию в YAML и JSON. Оболочки предоставляются для многих фабричных методов, которые предлагает пакет time.

    • conditions.message (string)

      message — удобочитаемое сообщение, указывающее подробности о последнем переходе.

    • conditions.reason (string)

      reason — уникальное, однословное, CamelCase обоснование последнего перехода состояния.

    • conditions.status (string)

      status — состояние условия. Может быть True, False, Unknown. Обязательно.

    • conditions.type (string)

      type — тип условия. Обязательно.

PriorityLevelConfigurationList

PriorityLevelConfigurationList — список объектов PriorityLevelConfiguration.

  • apiVersion: flowcontrol.apiserver.k8s.io/v1

  • kind: Список приоритетных уровней

  • metadata (ListMeta)

    metadata — стандартные метаданные объекта. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

  • items ([]КонфигурацияПриоритетаЗапроса), обязательно

    items — список приоритетов запросов.

© 2024 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2024 The Linux Foundation ®. All rights reserved.
https://kubernetes.io/docs/reference/kubernetes-api/policy-resources/priority-level-configuration-v1/

Spec-Zone.ru

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