CSIStorageCapacity

CSIStorageCapacity 儲存一次 CSI GetCapacity 呼叫的結果。

apiVersion: storage.k8s.io/v1

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

CSIStorageCapacity

CSIStorageCapacity 儲存一次 CSI GetCapacity 呼叫的結果。對於給定的 StorageClass,此物件描述特定拓撲段中可用的容量。在考慮例項化新的 PersistentVolume 時,可以使用此物件。

例如,它可以表達以下資訊: - StorageClass "standard" 在 "topology.kubernetes.io/zone=us-east1" 中有 "1234 GiB" 可用容量 - StorageClass "localssd" 在 "kubernetes.io/hostname=knode-abc123" 中有 "10 GiB" 可用容量

以下三種情況都表示某種組合沒有可用容量: - 不存在具有合適拓撲和儲存類名稱的物件 - 存在此類物件,但容量未設定 - 存在此類物件,但容量為零

這些物件的生產者可以決定哪種方法更合適。

當 CSI 驅動程式透過 CSIDriverSpec.StorageCapacity 選擇支援容量感知的排程時,kube-scheduler 會使用這些物件。排程器會將 MaximumVolumeSize 與待處理卷的請求大小進行比較,以過濾掉不合適的節點。如果 MaximumVolumeSize 未設定,它將回退到與不那麼精確的 Capacity 進行比較。如果 Capacity 也未設定,排程器將假定容量不足並嘗試其他節點。


  • apiVersion: storage.k8s.io/v1

  • kind: CSIStorageCapacity

  • metadata (ObjectMeta)

    標準物件的元資料。名稱沒有特殊含義。它必須是 DNS 子域名(允許使用點,最長 253 個字元)。為確保與叢集上其他 CSI 驅動程式不衝突,建議使用 csisc-<uuid>、生成的名稱或以唯一 CSI 驅動程式名稱結尾的反向域名。

    物件是名稱空間的。

    更多資訊:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

  • storageClassName (string),必需

    storageClassName 表示所報告容量適用的 StorageClass 的名稱。它必須滿足與 StorageClass 物件名稱相同的要求(非空,DNS 子域名)。如果該物件不再存在,則 CSIStorageCapacity 物件已過時,應由其建立者刪除。此欄位不可變。

  • capacity (Quantity)

    capacity 是 CSI 驅動程式在其 GetCapacityResponse 中報告的值,對應於拓撲和引數與前述欄位匹配的 GetCapacityRequest。

    其語義目前(CSI 規範 1.2)定義為:可用於配置卷的儲存的可用容量,以位元組為單位。如果未設定,則表示該資訊目前不可用。

  • maximumVolumeSize (Quantity)

    maximumVolumeSize 是 CSI 驅動程式在其 GetCapacityResponse 中報告的值,對應於拓撲和引數與前述欄位匹配的 GetCapacityRequest。

    自 CSI 規範 1.4.0 起,這被定義為在 CreateVolumeRequest.capacity_range.required_bytes 欄位中可用於建立具有與 GetCapacityRequest 中相同引數的卷的最大大小。Kubernetes API 中對應的欄位是卷宣告中的 ResourceRequirements.Requests。

  • nodeTopology (LabelSelector)

    nodeTopology 定義了哪些節點可以訪問報告容量的儲存。如果未設定,則叢集中的任何節點都無法訪問該儲存。如果為空,則所有節點都可以訪問該儲存。此欄位不可變。

CSIStorageCapacityList

CSIStorageCapacityList 是 CSIStorageCapacity 物件的集合。


操作


get 讀取指定的 CSIStorageCapacity

HTTP 請求

GET /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}

引數

  • name (在路徑中): string,必填

    CSIStorageCapacity 的名稱

  • namespace (在路徑中): string,必填

    名稱空間

  • pretty (在查詢中): string

    pretty

響應

200 (CSIStorageCapacity):成功

401: 未授權

list 列出或監視 CSIStorageCapacity 型別的物件

HTTP 請求

GET /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities

引數

響應

200 (CSIStorageCapacityList):成功

401: 未授權

list 列出或監視 CSIStorageCapacity 型別的物件

HTTP 請求

GET /apis/storage.k8s.io/v1/csistoragecapacities

引數

響應

200 (CSIStorageCapacityList):成功

401: 未授權

create 建立 CSIStorageCapacity

HTTP 請求

POST /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities

引數

響應

200 (CSIStorageCapacity):成功

201 (CSIStorageCapacity):已建立

202 (CSIStorageCapacity):已接受

401: 未授權

update 替換指定的 CSIStorageCapacity

HTTP 請求

PUT /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}

引數

響應

200 (CSIStorageCapacity):成功

201 (CSIStorageCapacity):已建立

401: 未授權

patch 部分更新指定的 CSIStorageCapacity

HTTP 請求

PATCH /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}

引數

  • name (在路徑中): string,必填

    CSIStorageCapacity 的名稱

  • namespace (在路徑中): string,必填

    名稱空間

  • body: Patch,必需

  • dryRun (在查詢中): string

    dryRun

  • fieldManager (在查詢中): string

    fieldManager

  • fieldValidation (在查詢中): string

    fieldValidation

  • force (在查詢中): boolean

    force

  • pretty (在查詢中): string

    pretty

響應

200 (CSIStorageCapacity):成功

201 (CSIStorageCapacity):已建立

401: 未授權

delete 刪除 CSIStorageCapacity

HTTP 請求

DELETE /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities/{name}

引數

響應

200 (Status): OK

202 (Status): 已接受

401: 未授權

deletecollection 刪除 CSIStorageCapacity 集合

HTTP 請求

DELETE /apis/storage.k8s.io/v1/namespaces/{namespace}/csistoragecapacities

引數

響應

200 (Status): OK

401: 未授權

本頁面是自動生成的。

如果你打算報告此頁面存在的問題,請在問題描述中提及此頁面是自動生成的。修復可能需要在 Kubernetes 專案的其他地方進行。

上次修改時間:2025 年 4 月 9 日太平洋標準時間下午 6:36:更新 v1.32 的 API 參考文件 (a3b579d035)