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#metadataspec (PriorityLevelConfigurationSpec)
spec
是 "request-priority" 的預期行為規格。 更多資訊: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-statusstatus (PriorityLevelConfigurationStatus)
status
是 "request-priority" 的目前狀態。 更多資訊: 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 和 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 物件的列表。
apiVersion: flowcontrol.apiserver.k8s.io/v1
kind: PriorityLevelConfigurationList
metadata (ListMeta)
metadata
是標準物件的中繼資料。 更多資訊: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadataitems ([]PriorityLevelConfiguration),必填
items
是請求優先順序的列表。
操作
get
讀取指定的 PriorityLevelConfiguration
HTTP 請求
GET /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}
參數
name (*在路徑中*): 字串,必填
PriorityLevelConfiguration 的名稱
pretty (*在查詢中*): 字串
回應
200 (PriorityLevelConfiguration): 成功
401: 未經授權
get
讀取指定 PriorityLevelConfiguration 的狀態
HTTP 請求
GET /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}/status
參數
name (*在路徑中*): 字串,必填
PriorityLevelConfiguration 的名稱
pretty (*在查詢中*): 字串
回應
200 (PriorityLevelConfiguration): 成功
401: 未經授權
list
列出或監看種類為 PriorityLevelConfiguration 的物件
HTTP 請求
GET /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations
參數
allowWatchBookmarks (*在查詢中*): 布林值
continue (*在查詢中*): 字串
fieldSelector (*在查詢中*): 字串
labelSelector (*在查詢中*): 字串
limit (*在查詢中*): 整數
pretty (*在查詢中*): 字串
resourceVersion (*在查詢中*): 字串
resourceVersionMatch (*在查詢中*): 字串
sendInitialEvents (*在查詢中*): 布林值
timeoutSeconds (*在查詢中*): 整數
watch (*在查詢中*): 布林值
回應
200 (PriorityLevelConfigurationList): 成功
401: 未經授權
create
建立 PriorityLevelConfiguration
HTTP 請求
POST /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations
參數
body: PriorityLevelConfiguration,必填
dryRun (*在查詢中*): 字串
fieldManager (*在查詢中*): 字串
fieldValidation (*在查詢中*): 字串
pretty (*在查詢中*): 字串
回應
200 (PriorityLevelConfiguration): 成功
201 (PriorityLevelConfiguration): 已建立
202 (PriorityLevelConfiguration): 已接受
401: 未經授權
update
取代指定的 PriorityLevelConfiguration
HTTP 請求
PUT /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}
參數
name (*在路徑中*): 字串,必填
PriorityLevelConfiguration 的名稱
body: PriorityLevelConfiguration,必填
dryRun (*在查詢中*): 字串
fieldManager (*在查詢中*): 字串
fieldValidation (*在查詢中*): 字串
pretty (*在查詢中*): 字串
回應
200 (PriorityLevelConfiguration): 成功
201 (PriorityLevelConfiguration): 已建立
401: 未經授權
update
取代指定 PriorityLevelConfiguration 的狀態
HTTP 請求
PUT /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}/status
參數
name (*在路徑中*): 字串,必填
PriorityLevelConfiguration 的名稱
body: PriorityLevelConfiguration,必填
dryRun (*在查詢中*): 字串
fieldManager (*在查詢中*): 字串
fieldValidation (*在查詢中*): 字串
pretty (*在查詢中*): 字串
回應
200 (PriorityLevelConfiguration): 成功
201 (PriorityLevelConfiguration): 已建立
401: 未經授權
patch
部分更新指定的 PriorityLevelConfiguration
HTTP 請求
PATCH /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}
參數
name (*在路徑中*): 字串,必填
PriorityLevelConfiguration 的名稱
body: Patch,必填
dryRun (*在查詢中*): 字串
fieldManager (*在查詢中*): 字串
fieldValidation (*在查詢中*): 字串
force (*在查詢中*): 布林值
pretty (*在查詢中*): 字串
回應
200 (PriorityLevelConfiguration): 成功
201 (PriorityLevelConfiguration): 已建立
401: 未經授權
patch
部分更新指定 PriorityLevelConfiguration 的狀態
HTTP 請求
PATCH /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}/status
參數
name (*在路徑中*): 字串,必填
PriorityLevelConfiguration 的名稱
body: Patch,必填
dryRun (*在查詢中*): 字串
fieldManager (*在查詢中*): 字串
fieldValidation (*在查詢中*): 字串
force (*在查詢中*): 布林值
pretty (*在查詢中*): 字串
回應
200 (PriorityLevelConfiguration): 成功
201 (PriorityLevelConfiguration): 已建立
401: 未經授權
delete
刪除 PriorityLevelConfiguration
HTTP 請求
DELETE /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations/{name}
參數
name (*在路徑中*): 字串,必填
PriorityLevelConfiguration 的名稱
body: DeleteOptions
dryRun (*在查詢中*): 字串
gracePeriodSeconds (*在查詢中*): 整數
pretty (*在查詢中*): 字串
propagationPolicy (*在查詢中*): 字串
回應
200 (Status): 成功
202 (Status): 已接受
401: 未經授權
deletecollection
刪除 PriorityLevelConfiguration 的集合
HTTP 請求
DELETE /apis/flowcontrol.apiserver.k8s.io/v1/prioritylevelconfigurations
參數
body: DeleteOptions
continue (*在查詢中*): 字串
dryRun (*在查詢中*): 字串
fieldSelector (*在查詢中*): 字串
gracePeriodSeconds (*在查詢中*): 整數
labelSelector (*在查詢中*): 字串
limit (*在查詢中*): 整數
pretty (*在查詢中*): 字串
propagationPolicy (*在查詢中*): 字串
resourceVersion (*在查詢中*): 字串
resourceVersionMatch (*在查詢中*): 字串
sendInitialEvents (*在查詢中*): 布林值
timeoutSeconds (*在查詢中*): 整數
回應
200 (Status): 成功
401: 未經授權
本頁為自動產生。
如果您計劃回報本頁面的問題,請在您的問題描述中提及本頁面為自動產生。此修正可能需要在 Kubernetes 專案的其他地方進行。