PriorityLevelConfiguration

PriorityLevelConfiguration 表示优先级级别的配置。

apiVersion: flowcontrol.apiserver.k8s.io/v1

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

PriorityLevelConfiguration

PriorityLevelConfiguration 表示优先级级别的配置。


PriorityLevelConfigurationSpec

PriorityLevelConfigurationSpec 指定优先级级别的配置。


  • exempt (ExemptPriorityLevelConfiguration)

    exempt 指定如何处理豁免优先级级别的请求。 如果 type"Limited",则此字段必须为空。 如果 type"Exempt",则此字段可能为非空。 如果为空并且 type"Exempt",则适用 ExemptPriorityLevelConfiguration 的默认值。

    ExemptPriorityLevelConfiguration 描述豁免请求处理的可配置方面。在强制豁免配置对象中,此处字段的值可以由授权用户修改,这与 spec 的其余部分不同。

    • exempt.lendablePercent (int32)

      lendablePercent 规定了该级别的 NominalCL 可以被其他优先级级别借用的比例。 此字段的值必须介于 0 和 100 之间(包括 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),并且是此级别一次可以借用的总席位数的限制。 此字段保存该限制与该级别名义并发限制的比率。 当此字段为非 nil 时,它必须保存一个非负整数,并且限制的计算方式如下。

      BorrowingCL(i) = round( NominalCL(i) * borrowingLimitPercent(i)/100.0 )

      此字段的值可以大于 100,这意味着此优先级级别可以借用的席位数大于其自身的名义并发限制 (NominalCL)。 当此字段保留 nil 时,该限制实际上是无限的。

    • limited.lendablePercent (int32)

      lendablePercent 规定了该级别的 NominalCL 可以被其他优先级级别借用的比例。 此字段的值必须介于 0 和 100 之间(包括 0 和 100),并且默认为 0。 其他级别可以从此级别借用的席位数,称为此级别的 LendableConcurrencyLimit(LendableCL),定义如下。

      LendableCL(i) = round( NominalCL(i) * lendablePercent(i)/100.0 )

    • limited.limitResponse (LimitResponse)

      limitResponse 指示如何处理当前无法执行的请求

      LimitResponse 定义如何处理当前无法执行的请求。

      • limited.limitResponse.type (string),必需

        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) 根据其 NCS 值在受限优先级级别之间分配

      NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[优先级级别 k] NCS(k)

      较大的数字意味着更大的名义并发限制,但会以牺牲其他每个优先级级别为代价。

      如果未指定,则此字段的默认值为 30。

      将此字段设置为零支持为此优先级级别构建一个“监狱”,用于保存一些请求

  • type (string),必需

    type 表示此优先级级别是否受请求执行限制的约束。值为 "Exempt" 表示此优先级级别的请求不受限制(因此永远不会排队),并且不会减少提供给其他优先级级别的容量。值为 "Limited" 表示 (a) 此优先级级别的请求限制约束,并且 (b) 服务器的部分有限容量专门为此优先级级别提供。必需。

PriorityLevelConfigurationStatus

PriorityLevelConfigurationStatus 表示“请求优先级”的当前状态。


  • conditions ([]PriorityLevelConfigurationCondition)

    补丁策略:合并键 type

    映射:在合并期间将保留键类型上的唯一值

    conditions 是“请求优先级”的当前状态。

    PriorityLevelConfigurationCondition 定义了优先级级别的条件。

    • conditions.lastTransitionTime (Time)

      lastTransitionTime 是条件从一个状态转换为另一个状态的最后时间。

      Time 是对 time.Time 的封装,它支持正确地编排为 YAML 和 JSON。为 time 包提供的许多工厂方法提供了封装器。

    • conditions.message (string)

      message 是一个人类可读的消息,指示有关上次转换的详细信息。

    • conditions.reason (string)

      reason 是条件上次转换的唯一、单字、驼峰式原因。

    • conditions.status (string)

      status 是条件的状态。可以是 True、False、Unknown。必需。

    • conditions.type (string)

      type 是条件的类型。必需。

PriorityLevelConfigurationList

PriorityLevelConfigurationList 是 PriorityLevelConfiguration 对象的列表。


操作


get 读取指定的 PriorityLevelConfiguration

HTTP 请求

GET /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}

参数

  • name (在路径中): string, 必需

    PriorityLevelConfiguration 的名称

  • pretty (在查询中): string

    pretty

响应

200 (PriorityLevelConfiguration): OK

401: 未授权

get 读取指定的 PriorityLevelConfiguration 的状态

HTTP 请求

GET /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}/status

参数

  • name (在路径中): string, 必需

    PriorityLevelConfiguration 的名称

  • pretty (在查询中): string

    pretty

响应

200 (PriorityLevelConfiguration): OK

401: 未授权

list 列出或监视 PriorityLevelConfiguration 类型的对象

HTTP 请求

GET /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations

参数

响应

200 (PriorityLevelConfigurationList): OK

401: 未授权

create 创建 PriorityLevelConfiguration

HTTP 请求

POST /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations

参数

响应

200 (PriorityLevelConfiguration): OK

201 (PriorityLevelConfiguration): 已创建

202 (PriorityLevelConfiguration): 已接受

401: 未授权

update 替换指定的 PriorityLevelConfiguration

HTTP 请求

PUT /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}

参数

响应

200 (PriorityLevelConfiguration): OK

201 (PriorityLevelConfiguration): 已创建

401: 未授权

update 替换指定的 PriorityLevelConfiguration 的状态

HTTP 请求

PUT /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}/status

参数

响应

200 (PriorityLevelConfiguration): OK

201 (PriorityLevelConfiguration): 已创建

401: 未授权

patch 部分更新指定的 PriorityLevelConfiguration

HTTP 请求

PATCH /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}

参数

  • name (在路径中): string, 必需

    PriorityLevelConfiguration 的名称

  • body: Patch, 必需

  • dryRun (在查询中): string

    dryRun

  • fieldManager (在查询中): string

    fieldManager

  • fieldValidation (在查询中): string

    fieldValidation

  • force (在查询中): boolean

    force

  • pretty (在查询中): string

    pretty

响应

200 (PriorityLevelConfiguration): OK

201 (PriorityLevelConfiguration): 已创建

401: 未授权

patch 部分更新指定的 PriorityLevelConfiguration 的状态

HTTP 请求

PATCH /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}/status

参数

  • name (在路径中): string, 必需

    PriorityLevelConfiguration 的名称

  • body: Patch, 必需

  • dryRun (在查询中): string

    dryRun

  • fieldManager (在查询中): string

    fieldManager

  • fieldValidation (在查询中): string

    fieldValidation

  • force (在查询中): boolean

    force

  • pretty (在查询中): string

    pretty

响应

200 (PriorityLevelConfiguration): OK

201 (PriorityLevelConfiguration): 已创建

401: 未授权

delete 删除 PriorityLevelConfiguration

HTTP 请求

DELETE /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}

参数

响应

200 (Status): OK

202 (Status): 已接受

401: 未授权

deletecollection 删除 PriorityLevelConfiguration 的集合

HTTP 请求

DELETE /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations

参数

响应

200 (Status): OK

401: 未授权

此页面是自动生成的。

如果您计划报告此页面的问题,请在您的问题描述中注明该页面是自动生成的。修复可能需要在 Kubernetes 项目中的其他位置进行。

上次修改时间:2024 年 8 月 28 日下午 6:01 PST:更新 v1.31 的生成 API 参考 (8ba98c79c1)