PersistentVolumeClaim

PersistentVolumeClaim 是使用者對持久磁碟區的請求和聲明。

apiVersion: v1

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

PersistentVolumeClaim

PersistentVolumeClaim 是使用者對持久磁碟區的請求和聲明


PersistentVolumeClaimSpec

PersistentVolumeClaimSpec 描述儲存裝置的通用屬性,並允許提供者特定屬性的來源


Beta 層級

  • dataSource (TypedLocalObjectReference)

    dataSource 欄位可用於指定以下其中一項: * 現有的 VolumeSnapshot 物件 (snapshot.storage.k8s.io/VolumeSnapshot) * 現有的 PVC (PersistentVolumeClaim)。如果佈建器或外部控制器可以支援指定的資料來源,則會根據指定資料來源的內容建立新的磁碟區。當啟用 AnyVolumeDataSource 功能閘道時,dataSource 內容將複製到 dataSourceRef,而當未指定 dataSourceRef.namespace 時,dataSourceRef 內容將複製到 dataSource。如果指定了命名空間,則 dataSourceRef 將不會複製到 dataSource。

  • dataSourceRef (類型化物件參考)

    dataSourceRef 指定了要從哪個物件填充磁碟區資料的來源,如果需要非空的磁碟區。這可以是來自非空 API 群組(非核心物件)的任何物件,或是 PersistentVolumeClaim 物件。當指定此欄位時,只有在指定物件的類型與已安裝的磁碟區填充器或動態佈建器相符時,磁碟區繫結才會成功。此欄位將取代 dataSource 欄位的功能,因此如果兩個欄位都為非空,則它們必須具有相同的值。為了向後相容性,當 dataSourceRef 中未指定命名空間時,如果其中一個欄位為空而另一個欄位為非空,則兩個欄位 (dataSource 和 dataSourceRef) 都將自動設定為相同的值。當 dataSourceRef 中指定了命名空間時,dataSource 不會設定為相同的值,並且必須為空。dataSource 和 dataSourceRef 之間有三個重要的差異: * 雖然 dataSource 僅允許兩種特定類型的物件,但 dataSourceRef 允許任何非核心物件以及 PersistentVolumeClaim 物件。

    • 雖然 dataSource 會忽略不允許的值(捨棄它們),但 dataSourceRef 會保留所有值,並且在指定不允許的值時產生錯誤。
    • 雖然 dataSource 僅允許本地物件,但 dataSourceRef 允許任何命名空間中的物件。(Beta)使用此欄位需要啟用 AnyVolumeDataSource 功能閘道。(Alpha)使用 dataSourceRef 的 namespace 欄位需要啟用 CrossNamespaceVolumeDataSource 功能閘道。

    **

    • dataSourceRef.kind (字串), 必填

      Kind 是指被參考資源的類型

    • dataSourceRef.name (字串), 必填

      Name 是指被參考資源的名稱

    • dataSourceRef.apiGroup (字串)

      APIGroup 是指被參考資源的群組。如果未指定 APIGroup,則指定的 Kind 必須位於核心 API 群組中。對於任何其他第三方類型,則必須指定 APIGroup。

    • dataSourceRef.namespace (字串)

      Namespace 是指被參考資源的命名空間。請注意,當指定命名空間時,參考命名空間中需要 gateway.networking.k8s.io/ReferenceGrant 物件,以允許該命名空間的所有者接受參考。詳情請參閱 ReferenceGrant 文件。(Alpha)此欄位需要啟用 CrossNamespaceVolumeDataSource 功能閘道。

  • volumeAttributesClassName (字串)

    volumeAttributesClassName 可用於設定此宣告所使用的 VolumeAttributesClass。如果指定,CSI 驅動程式將使用相應 VolumeAttributesClass 中定義的屬性建立或更新磁碟區。這與 storageClassName 的目的不同,它可以在宣告建立後更改。空字串值表示不會將 VolumeAttributesClass 應用於宣告,但一旦設定此欄位,則不允許將其重設為空字串。如果未指定且 PersistentVolumeClaim 未繫結,如果預設的 VolumeAttributesClass 存在,則 persistentvolume 控制器將會設定它。如果 volumeAttributesClass 所參考的資源不存在,則此 PersistentVolumeClaim 將設定為 Pending 狀態,如 modifyVolumeStatus 欄位所反映,直到此類資源存在為止。更多資訊: https://kubernetes.dev.org.tw/docs/concepts/storage/volume-attributes-classes/ (Beta)使用此欄位需要啟用 VolumeAttributesClass 功能閘道(預設為關閉)。

PersistentVolumeClaimStatus

PersistentVolumeClaimStatus 是持續性磁碟宣告的目前狀態。


  • accessModes ([]string)

    Atomic:將在合併期間被取代

    accessModes 包含 PVC 後端磁碟區的實際存取模式。更多資訊: https://kubernetes.dev.org.tw/docs/concepts/storage/persistent-volumes#access-modes-1

  • allocatedResourceStatuses (map[string]string)

    allocatedResourceStatuses 儲存給定 PVC 的資源調整大小的狀態。鍵名稱遵循標準 Kubernetes 標籤語法。有效值為以下其中一項: * 無前綴鍵: - storage - 磁碟區的容量。 * 自訂資源必須使用實作定義的前綴名稱,例如 "example.com/my-custom-resource"。除了上述值之外 - 無前綴或具有 kubernetes.io 前綴的鍵被視為保留,因此不得使用。

    ClaimResourceStatus 可以處於以下任何狀態: - ControllerResizeInProgress:當調整大小控制器開始在控制平面中調整磁碟區大小時設定的狀態。 - ControllerResizeFailed:當調整大小控制器中的調整大小失敗並出現終端錯誤時設定的狀態。 - NodeResizePending:當調整大小控制器完成調整磁碟區大小但節點上需要進一步調整磁碟區大小時設定的狀態。 - NodeResizeInProgress:當 kubelet 開始調整磁碟區大小時設定的狀態。 - NodeResizeFailed:當 kubelet 中的調整大小失敗並出現終端錯誤時設定的狀態。暫時性錯誤不會設定 NodeResizeFailed。例如:如果擴展 PVC 以獲得更多容量 - 此欄位可以是以下狀態之一: - pvc.status.allocatedResourceStatus['storage'] = "ControllerResizeInProgress" - pvc.status.allocatedResourceStatus['storage'] = "ControllerResizeFailed" - pvc.status.allocatedResourceStatus['storage'] = "NodeResizePending" - pvc.status.allocatedResourceStatus['storage'] = "NodeResizeInProgress" - pvc.status.allocatedResourceStatus['storage'] = "NodeResizeFailed" 當未設定此欄位時,表示給定 PVC 沒有正在進行的調整大小操作。

    接收到具有先前未知 resourceName 或 ClaimResourceStatus 的 PVC 更新的控制器應忽略該更新,以達到其設計目的。例如 - 僅負責調整磁碟區容量的控制器應忽略更改與 PVC 關聯的其他有效資源的 PVC 更新。

    這是一個 Alpha 欄位,需要啟用 RecoverVolumeExpansionFailure 功能。

  • allocatedResources (map[string]Quantity)

    allocatedResources 追蹤分配給 PVC 的資源,包括其容量。鍵名稱遵循標準 Kubernetes 標籤語法。有效值為以下其中一項: * 無前綴鍵: - storage - 磁碟區的容量。 * 自訂資源必須使用實作定義的前綴名稱,例如 "example.com/my-custom-resource"。除了上述值之外 - 無前綴或具有 kubernetes.io 前綴的鍵被視為保留,因此不得使用。

    當請求磁碟區擴展操作時,此處報告的容量可能大於實際容量。對於儲存配額,使用 allocatedResources 和 PVC.spec.resources 中的較大值。如果未設定 allocatedResources,則僅使用 PVC.spec.resources 進行配額計算。如果降低了磁碟區擴展容量請求,則僅當沒有正在進行的擴展操作且實際磁碟區容量等於或低於請求的容量時,才會降低 allocatedResources。

    接收到具有先前未知 resourceName 的 PVC 更新的控制器應忽略該更新,以達到其設計目的。例如 - 僅負責調整磁碟區容量的控制器應忽略更改與 PVC 關聯的其他有效資源的 PVC 更新。

    這是一個 Alpha 欄位,需要啟用 RecoverVolumeExpansionFailure 功能。

  • capacity (map[string]Quantity)

    capacity 代表底層磁碟區的實際資源。

  • conditions ([]PersistentVolumeClaimCondition)

    Patch 策略:在鍵 type 上合併

    Map:在合併期間,將保留鍵類型上的唯一值

    conditions 是持續性磁碟宣告的目前狀況。如果底層的持續性磁碟區正在調整大小,則狀況將設定為 'Resizing'。

    PersistentVolumeClaimCondition 包含有關 pvc 狀態的詳細資訊

    • conditions.status (字串), 必填

    • conditions.type (字串), 必填

    • conditions.lastProbeTime (時間)

      lastProbeTime 是我們探測狀況的時間。

      時間是 time.Time 的包裝器,支援正確地封送至 YAML 和 JSON。為 time 套件提供的許多工廠方法提供了包裝器。

    • conditions.lastTransitionTime (時間)

      lastTransitionTime 是狀況從一種狀態轉換到另一種狀態的時間。

      時間是 time.Time 的包裝器,支援正確地封送至 YAML 和 JSON。為 time 套件提供的許多工廠方法提供了包裝器。

    • conditions.message (字串)

      message 是人類可讀的訊息,指示有關上次轉換的詳細資訊。

    • conditions.reason (字串)

      reason 是一個唯一的字串,應該是一個簡短、機器可理解的字串,用於說明狀況上次轉換的原因。如果它報告 "Resizing",則表示底層的持續性磁碟區正在調整大小。

  • currentVolumeAttributesClassName (字串)

    currentVolumeAttributesClassName 是 PVC 目前正在使用的 VolumeAttributesClass 的名稱。當未設定時,此 PersistentVolumeClaim 沒有應用 VolumeAttributeClass。這是一個 Beta 欄位,需要啟用 VolumeAttributesClass 功能(預設為關閉)。

  • modifyVolumeStatus (ModifyVolumeStatus)

    ModifyVolumeStatus 代表 ControllerModifyVolume 操作的狀態物件。當未設定時,沒有正在嘗試的 ModifyVolume 操作。這是一個 Beta 欄位,需要啟用 VolumeAttributesClass 功能(預設為關閉)。

    ModifyVolumeStatus 代表 ControllerModifyVolume 操作的狀態物件

    • modifyVolumeStatus.status (字串), 必填

      status 是 ControllerModifyVolume 操作的狀態。它可以處於以下任何狀態

      • Pending Pending 表示 PersistentVolumeClaim 由於未滿足的要求(例如指定的 VolumeAttributesClass 不存在)而無法修改。
      • InProgress InProgress 表示磁碟區正在修改中。
      • Infeasible Infeasible 表示請求已被 CSI 驅動程式拒絕,因為它是無效的。要解決此錯誤,需要指定有效的 VolumeAttributesClass。注意:未來可能會新增新的狀態。消費者應檢查未知狀態並適當處理失敗。
    • modifyVolumeStatus.targetVolumeAttributesClassName (字串)

      targetVolumeAttributesClassName 是 PVC 目前正在協調的 VolumeAttributesClass 的名稱

  • phase (字串)

    phase 代表 PersistentVolumeClaim 的目前階段。

PersistentVolumeClaimList

PersistentVolumeClaimList 是 PersistentVolumeClaim 項目列表。


Operations


get 讀取指定的 PersistentVolumeClaim

HTTP 請求

GET /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}

參數

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

    PersistentVolumeClaim 的名稱

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

    命名空間

  • pretty (在查詢中): 字串

    pretty

回應

200 (PersistentVolumeClaim): OK

401: 未經授權

get 讀取指定 PersistentVolumeClaim 的狀態

HTTP 請求

GET /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status

參數

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

    PersistentVolumeClaim 的名稱

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

    命名空間

  • pretty (在查詢中): 字串

    pretty

回應

200 (PersistentVolumeClaim): OK

401: 未經授權

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

HTTP 請求

GET /api/v1/namespaces/{namespace}/persistentvolumeclaims

參數

回應

200 (PersistentVolumeClaimList): OK

401: 未經授權

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

HTTP 請求

GET /api/v1/persistentvolumeclaims

參數

回應

200 (PersistentVolumeClaimList): OK

401: 未經授權

create 建立 PersistentVolumeClaim

HTTP 請求

POST /api/v1/namespaces/{namespace}/persistentvolumeclaims

參數

回應

200 (PersistentVolumeClaim): OK

201 (PersistentVolumeClaim): Created

202 (PersistentVolumeClaim): Accepted

401: 未經授權

update 更新指定的 PersistentVolumeClaim

HTTP 請求

PUT /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}

參數

回應

200 (PersistentVolumeClaim): OK

201 (PersistentVolumeClaim): Created

401: 未經授權

update 更新指定 PersistentVolumeClaim 的狀態

HTTP 請求

PUT /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status

參數

回應

200 (PersistentVolumeClaim): OK

201 (PersistentVolumeClaim): Created

401: 未經授權

patch 部分更新指定的 PersistentVolumeClaim

HTTP 請求

PATCH /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}

參數

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

    PersistentVolumeClaim 的名稱

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

    命名空間

  • body: Patch, 必填

  • dryRun (在查詢中): 字串

    dryRun

  • fieldManager (在查詢中): 字串

    fieldManager

  • fieldValidation (在查詢中): 字串

    fieldValidation

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

    force

  • pretty (在查詢中): 字串

    pretty

回應

200 (PersistentVolumeClaim): OK

201 (PersistentVolumeClaim): Created

401: 未經授權

patch 部分更新指定 PersistentVolumeClaim 的狀態

HTTP 請求

PATCH /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status

參數

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

    PersistentVolumeClaim 的名稱

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

    命名空間

  • body: Patch, 必填

  • dryRun (在查詢中): 字串

    dryRun

  • fieldManager (在查詢中): 字串

    fieldManager

  • fieldValidation (在查詢中): 字串

    fieldValidation

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

    force

  • pretty (在查詢中): 字串

    pretty

回應

200 (PersistentVolumeClaim): OK

201 (PersistentVolumeClaim): Created

401: 未經授權

delete 刪除 PersistentVolumeClaim

HTTP 請求

DELETE /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}

參數

回應

200 (PersistentVolumeClaim): OK

202 (PersistentVolumeClaim): Accepted

401: 未經授權

deletecollection 刪除 PersistentVolumeClaim 集合

HTTP 請求

DELETE /api/v1/namespaces/{namespace}/persistentvolumeclaims

參數

回應

200 (Status): OK

401: 未經授權

此頁面為自動產生。

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

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