ResourceSlice v1beta1

ResourceSlice 代表一或多個相似資源池中的資源,由通用驅動程式管理。

apiVersion: resource.k8s.io/v1beta1

import "k8s.io/api/resource/v1beta1"

ResourceSlice

ResourceSlice 代表一或多個相似資源池中的資源,由通用驅動程式管理。一個池可能跨越多個 ResourceSlice,而構成一個池的 ResourceSlice 確切數量由驅動程式決定。

目前,唯一支援的資源是具有屬性和容量的裝置。在指定的集區中,無論 ResourceSlice 有多少,每個裝置都必須有一個獨特的名稱。裝置發布所在的 ResourceSlice 可能會隨時間而改變。裝置的唯一識別符是元組 <驅動程式名稱>、<集區名稱>、<裝置名稱>。

每當驅動程式需要更新集區時,它會遞增 pool.Spec.Pool.Generation 數字,並使用該新數字和新的資源定義來更新所有 ResourceSlice。消費者必須僅使用具有最高世代數字的 ResourceSlice,並忽略所有其他 ResourceSlice。

當分配集區中符合特定條件的所有資源,或在數個不同替代方案中尋找最佳解決方案時,消費者應檢查集區中 ResourceSlice 的數量(包含在每個 ResourceSlice 中),以確定其集區視圖是否完整,如果沒有完整,則應等待直到驅動程式完成更新集區。

對於非節點本機的資源,不會設定節點名稱。相反地,驅動程式可以使用節點選擇器來指定裝置在哪些節點上可用。

這是一個 alpha 類型,需要啟用 DynamicResourceAllocation 功能閘道。


  • apiVersion: resource.k8s.io/v1beta1

  • kind: ResourceSlice

  • metadata (ObjectMeta)

    標準物件元數據

  • spec (ResourceSliceSpec), required (必填)

    包含驅動程式發布的資訊。

    變更 spec 會自動遞增 metadata.generation 數字。

ResourceSliceSpec

ResourceSliceSpec 包含驅動程式在一個 ResourceSlice 中發布的資訊。


  • driver (string), required (必填字串)

    Driver 識別提供容量資訊的 DRA 驅動程式。欄位選擇器可用於僅列出具有特定驅動程式名稱的 ResourceSlice 物件。

    必須是 DNS 子網域,並且應以驅動程式供應商擁有的 DNS 網域結尾。此欄位為不可變。

  • pool (ResourcePool), required (必填 ResourcePool)

    Pool 描述此 ResourceSlice 所屬的集區。

    ResourcePool 描述 ResourceSlice 所屬的集區。

    • pool.generation (int64), required (必填 int64)

      Generation 追蹤集區隨時間的變更。每當驅動程式變更集區中一個或多個資源的任何內容時,都必須變更屬於該集區的所有 ResourceSlice 中的世代。ResourceSlice 的消費者應僅考慮來自具有最高世代數字的集區的資源。世代可能會被驅動程式重置,這對消費者來說應該沒問題,前提是集區中的所有 ResourceSlice 都已更新以匹配或刪除。

      結合 ResourceSliceCount,此機制使消費者能夠偵測由多個 ResourceSlice 組成且處於不完整狀態的集區。

    • pool.name (string), required (必填字串)

      Name 用於識別集區。對於節點本機裝置,這通常是節點名稱,但並非必要。

      長度不得超過 253 個字元,並且必須由一個或多個以斜線分隔的 DNS 子網域組成。此欄位為不可變。

    • pool.resourceSliceCount (int64), required (必填 int64)

      ResourceSliceCount 是此世代數字中集區內 ResourceSlice 的總數。必須大於零。

      消費者可以使用此功能來檢查他們是否已看到屬於同一個集區的所有 ResourceSlice。

  • allNodes (boolean) (布林值)

    AllNodes 表示所有節點都可以存取集區中的資源。

    NodeName、NodeSelector 和 AllNodes 必須恰好設定其中一個。

  • devices ([]Device) (裝置陣列)

    原子性:在合併期間將被替換

    Devices 列出此集區中的部分或所有裝置。

    不得超過 128 個條目。

    Device 代表可以根據其屬性選擇的單個硬體實例。除了名稱之外,必須恰好設定一個欄位。

    • devices.name (string), required (必填字串)

      Name 是驅動程式在集區中管理的所有裝置中的唯一識別符。它必須是 DNS 標籤。

    • devices.basic (BasicDevice) (BasicDevice)

      Basic 定義一個裝置實例。

      BasicDevice 定義一個裝置實例。

      • devices.basic.attributes (map[string]DeviceAttribute) (屬性映射[字串]裝置屬性)

        Attributes 定義此裝置的屬性集。每個屬性的名稱在該集合中必須是唯一的。

        屬性和容量加起來的最大數量為 32。

        DeviceAttribute 必須恰好設定一個欄位。

        • devices.basic.attributes.bool (boolean) (布林值)

          BoolValue 是一個 true/false 值。

        • devices.basic.attributes.int (int64) (int64)

          IntValue 是一個數字。

        • devices.basic.attributes.string (string) (字串)

          StringValue 是一個字串。長度不得超過 64 個字元。

        • devices.basic.attributes.version (string) (字串)

          VersionValue 是一個符合 semver.org 規範 2.0.0 的語義版本。長度不得超過 64 個字元。

      • devices.basic.capacity (map[string]Quantity) (容量映射[字串]數量)

        Capacity 定義此裝置的容量集。每個容量的名稱在該集合中必須是唯一的。

        屬性和容量加起來的最大數量為 32。

  • nodeName (string) (字串)

    NodeName 識別提供此集區中資源的節點。欄位選擇器可用於僅列出屬於特定節點的 ResourceSlice 物件。

    此欄位可用於限制節點對具有相同節點名稱的 ResourceSlice 的存取。它也向自動擴展器指示,新增與某些舊節點類型相同的新節點也可能使新的資源可用。

    NodeName、NodeSelector 和 AllNodes 必須恰好設定其中一個。此欄位為不可變。

  • nodeSelector (NodeSelector) (節點選擇器)

    NodeSelector 定義當集區不限於單個節點時,哪些節點可以存取集區中的資源。

    必須恰好使用一個術語。

    NodeName、NodeSelector 和 AllNodes 必須恰好設定其中一個。

    節點選擇器代表一組節點上一個或多個標籤查詢結果的聯集;也就是說,它代表節點選擇器術語所代表的選擇器的 OR 運算。

    • nodeSelector.nodeSelectorTerms ([]NodeSelectorTerm), required (必填節點選擇器術語陣列)

      原子性:在合併期間將被替換

      必填。節點選擇器術語的列表。這些術語是 OR 運算。

      空值或空的節點選擇器術語不匹配任何物件。它們的要求是 AND 運算。TopologySelectorTerm 類型實作了 NodeSelectorTerm 的子集。

      • nodeSelector.nodeSelectorTerms.matchExpressions ([]NodeSelectorRequirement) (匹配表達式陣列)

        原子性:在合併期間將被替換

        依節點標籤的節點選擇器需求列表。

      • nodeSelector.nodeSelectorTerms.matchFields ([]NodeSelectorRequirement) (匹配欄位陣列)

        原子性:在合併期間將被替換

        依節點欄位的節點選擇器需求列表。

ResourceSliceList

ResourceSliceList 是 ResourceSlice 的集合。


  • apiVersion: resource.k8s.io/v1beta1

  • kind: ResourceSliceList

  • items ([]ResourceSlice), required (必填 ResourceSlice 陣列)

    Items 是資源 ResourceSlice 的列表。

  • metadata (ListMeta)

    標準列表元數據

Operations (操作)


get 讀取指定的 ResourceSlice

HTTP Request (HTTP 請求)

GET /apis/resource.k8s.io/v1beta1/resourceslices/{name}

Parameters (參數)

  • name (in path): string, required (在路徑中):必填字串

    ResourceSlice 的名稱

  • pretty (in query): string (在查詢中):字串

    pretty (美化輸出)

Response (回應)

200 (ResourceSlice): OK (成功)

401: Unauthorized (未經授權)

list 列出或監看 ResourceSlice 類型的物件

HTTP Request (HTTP 請求)

GET /apis/resource.k8s.io/v1beta1/resourceslices

Parameters (參數)

Response (回應)

200 (ResourceSliceList): OK (成功)

401: Unauthorized (未經授權)

create 建立 ResourceSlice

HTTP Request (HTTP 請求)

POST /apis/resource.k8s.io/v1beta1/resourceslices

Parameters (參數)

Response (回應)

200 (ResourceSlice): OK (成功)

201 (ResourceSlice): Created (已建立)

202 (ResourceSlice): Accepted (已接受)

401: Unauthorized (未經授權)

update 取代指定的 ResourceSlice

HTTP Request (HTTP 請求)

PUT /apis/resource.k8s.io/v1beta1/resourceslices/{name}

Parameters (參數)

Response (回應)

200 (ResourceSlice): OK (成功)

201 (ResourceSlice): Created (已建立)

401: Unauthorized (未經授權)

patch 部分更新指定的 ResourceSlice

HTTP Request (HTTP 請求)

PATCH /apis/resource.k8s.io/v1beta1/resourceslices/{name}

Parameters (參數)

Response (回應)

200 (ResourceSlice): OK (成功)

201 (ResourceSlice): Created (已建立)

401: Unauthorized (未經授權)

delete 刪除 ResourceSlice

HTTP Request (HTTP 請求)

DELETE /apis/resource.k8s.io/v1beta1/resourceslices/{name}

Parameters (參數)

Response (回應)

200 (ResourceSlice): OK (成功)

202 (ResourceSlice): Accepted (已接受)

401: Unauthorized (未經授權)

deletecollection 刪除 ResourceSlice 的集合

HTTP Request (HTTP 請求)

DELETE /apis/resource.k8s.io/v1beta1/resourceslices

Parameters (參數)

Response (回應)

200 (Status): OK (成功)

401: Unauthorized (未經授權)

此頁面為自動產生。

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

上次修改時間:2024 年 11 月 19 日 11:15 AM PST:DRA:包含 v1beta1 API 參考文檔 (26b5da0885)