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[priority level 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 和 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 是此優先順序層級的佇列數。佇列在每個 apiserver 上獨立存在。此值必須為正數。將其設定為 1 有效地排除了洗牌分片,因此使相關流程架構的區分器方法變得無關緊要。此欄位的預設值為 64。

    • limited.nominalConcurrencyShares (int32)

      nominalConcurrencyShares (NCS) 有助於計算此層級的 NominalConcurrencyLimit (NominalCL)。這是此優先順序層級可用的執行席位數量。這既用於從此優先順序層級調度的請求,也用於從其他優先順序層級借用席位的請求。伺服器的並行限制 (ServerCL) 會根據其 NCS 值按比例分配給有限制優先順序層級

      NominalCL(i) = ceil( ServerCL * NCS(i) / sum_ncs ) sum_ncs = sum[priority level k] NCS(k)

      數字越大代表名義上的並行上限越高,但會犧牲其他優先順序層級的資源。

      如果未指定,此欄位預設值為 30。

      將此欄位設為零可支援為此優先順序層級建立「隔離區」,用於保留某些請求。

  • type (字串),必填

    type 表示此優先順序層級是否受請求執行限制約束。值為 "Exempt" 表示此優先順序層級的請求不受限制(因此永遠不會排隊),且不會減少提供給其他優先順序層級的容量。值為 "Limited" 表示 (a) 此優先順序層級的請求限制約束,且 (b) 伺服器的部分有限容量專門提供給此優先順序層級。 必填。

PriorityLevelConfigurationStatus

PriorityLevelConfigurationStatus 代表「請求優先順序」的目前狀態。


  • conditions ([]PriorityLevelConfigurationCondition)

    Patch 策略:依據鍵值 type 合併

    Map:在合併期間,鍵值 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 物件的列表。


操作


get 讀取指定的 PriorityLevelConfiguration

HTTP 請求

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

參數

  • name (*在路徑中*): 字串,必填

    PriorityLevelConfiguration 的名稱

  • pretty (*在查詢中*): 字串

    pretty

回應

200 (PriorityLevelConfiguration): 成功

401: 未經授權

get 讀取指定 PriorityLevelConfiguration 的狀態

HTTP 請求

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

參數

  • name (*在路徑中*): 字串,必填

    PriorityLevelConfiguration 的名稱

  • pretty (*在查詢中*): 字串

    pretty

回應

200 (PriorityLevelConfiguration): 成功

401: 未經授權

list 列出或監看種類為 PriorityLevelConfiguration 的物件

HTTP 請求

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

參數

回應

200 (PriorityLevelConfigurationList): 成功

401: 未經授權

create 建立 PriorityLevelConfiguration

HTTP 請求

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

參數

回應

200 (PriorityLevelConfiguration): 成功

201 (PriorityLevelConfiguration): 已建立

202 (PriorityLevelConfiguration): 已接受

401: 未經授權

update 取代指定的 PriorityLevelConfiguration

HTTP 請求

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

參數

回應

200 (PriorityLevelConfiguration): 成功

201 (PriorityLevelConfiguration): 已建立

401: 未經授權

update 取代指定 PriorityLevelConfiguration 的狀態

HTTP 請求

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

參數

回應

200 (PriorityLevelConfiguration): 成功

201 (PriorityLevelConfiguration): 已建立

401: 未經授權

patch 部分更新指定的 PriorityLevelConfiguration

HTTP 請求

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

參數

  • name (*在路徑中*): 字串,必填

    PriorityLevelConfiguration 的名稱

  • body: Patch,必填

  • dryRun (*在查詢中*): 字串

    dryRun

  • fieldManager (*在查詢中*): 字串

    fieldManager

  • fieldValidation (*在查詢中*): 字串

    fieldValidation

  • force (*在查詢中*): 布林值

    force

  • pretty (*在查詢中*): 字串

    pretty

回應

200 (PriorityLevelConfiguration): 成功

201 (PriorityLevelConfiguration): 已建立

401: 未經授權

patch 部分更新指定 PriorityLevelConfiguration 的狀態

HTTP 請求

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

參數

  • name (*在路徑中*): 字串,必填

    PriorityLevelConfiguration 的名稱

  • body: Patch,必填

  • dryRun (*在查詢中*): 字串

    dryRun

  • fieldManager (*在查詢中*): 字串

    fieldManager

  • fieldValidation (*在查詢中*): 字串

    fieldValidation

  • force (*在查詢中*): 布林值

    force

  • pretty (*在查詢中*): 字串

    pretty

回應

200 (PriorityLevelConfiguration): 成功

201 (PriorityLevelConfiguration): 已建立

401: 未經授權

delete 刪除 PriorityLevelConfiguration

HTTP 請求

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

參數

回應

200 (Status): 成功

202 (Status): 已接受

401: 未經授權

deletecollection 刪除 PriorityLevelConfiguration 的集合

HTTP 請求

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

參數

回應

200 (Status): 成功

401: 未經授權

本頁為自動產生。

如果您計劃回報本頁面的問題,請在您的問題描述中提及本頁面為自動產生。此修正可能需要在 Kubernetes 專案的其他地方進行。

最後修改時間:2024 年 8 月 28 日下午 6:01 PST:更新 v1.31 (8ba98c79c1) 的產生 API 參考文件