PersistentVolumeClaim
apiVersion: v1
import "k8s.io/api/core/v1"
PersistentVolumeClaim
PersistentVolumeClaim 是使用者對持久磁碟區的請求和聲明
apiVersion: v1
kind: PersistentVolumeClaim
metadata (ObjectMeta)
標準物件的中繼資料。 更多資訊:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec (PersistentVolumeClaimSpec)
spec 定義 Pod 作者請求的磁碟區所需特性。 更多資訊:https://kubernetes.dev.org.tw/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
status (PersistentVolumeClaimStatus)
status 代表持久磁碟區聲明的目前資訊/狀態。唯讀。 更多資訊:https://kubernetes.dev.org.tw/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
PersistentVolumeClaimSpec
PersistentVolumeClaimSpec 描述儲存裝置的通用屬性,並允許提供者特定屬性的來源
accessModes ([]string)
Atomic:將在合併期間被取代
accessModes 包含磁碟區應具有的所需存取模式。 更多資訊:https://kubernetes.dev.org.tw/docs/concepts/storage/persistent-volumes#access-modes-1
selector (LabelSelector)
selector 是用於繫結的磁碟區上的標籤查詢。
resources (VolumeResourceRequirements)
resources 代表磁碟區應具有的最小資源。如果啟用 RecoverVolumeExpansionFailure 功能,則允許使用者指定低於先前值的資源需求,但仍必須高於聲明狀態欄位中記錄的容量。 更多資訊:https://kubernetes.dev.org.tw/docs/concepts/storage/persistent-volumes#resources
VolumeResourceRequirements 描述磁碟區的儲存資源需求。
resources.limits (map[string]Quantity)
Limits 描述允許的最大計算資源量。 更多資訊:https://kubernetes.dev.org.tw/docs/concepts/configuration/manage-resources-containers/
resources.requests (map[string]Quantity)
Requests 描述所需的最小計算資源量。如果省略容器的 Requests,則預設為 Limits(如果已明確指定),否則預設為實作定義的值。Requests 不能超過 Limits。 更多資訊:https://kubernetes.dev.org.tw/docs/concepts/configuration/manage-resources-containers/
volumeName (string)
volumeName 是對支援此聲明的 PersistentVolume 的繫結參考。
storageClassName (string)
storageClassName 是聲明所需的 StorageClass 名稱。 更多資訊:https://kubernetes.dev.org.tw/docs/concepts/storage/persistent-volumes#class-1
volumeMode (string)
volumeMode 定義聲明所需的磁碟區類型。當未包含在聲明規格中時,表示 Filesystem 的值。
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 項目列表。
apiVersion: v1
kind: PersistentVolumeClaimList
metadata (ListMeta)
標準列表元數據。更多資訊: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
items ([]PersistentVolumeClaim), 必填
items 是持續性磁碟宣告的列表。更多資訊: https://kubernetes.dev.org.tw/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
Operations
get
讀取指定的 PersistentVolumeClaim
HTTP 請求
GET /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}
參數
回應
200 (PersistentVolumeClaim): OK
401: 未經授權
get
讀取指定 PersistentVolumeClaim 的狀態
HTTP 請求
GET /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status
參數
回應
200 (PersistentVolumeClaim): OK
401: 未經授權
list
列出或監看 PersistentVolumeClaim 類型的物件
HTTP 請求
GET /api/v1/namespaces/{namespace}/persistentvolumeclaims
參數
namespace (在路徑中): 字串, 必填
allowWatchBookmarks (在查詢中): 布林值
continue (在查詢中): 字串
fieldSelector (在查詢中): 字串
labelSelector (在查詢中): 字串
limit (在查詢中): 整數
pretty (在查詢中): 字串
resourceVersion (在查詢中): 字串
resourceVersionMatch (在查詢中): 字串
sendInitialEvents (在查詢中): 布林值
timeoutSeconds (在查詢中): 整數
watch (在查詢中): 布林值
回應
200 (PersistentVolumeClaimList): OK
401: 未經授權
list
列出或監看 PersistentVolumeClaim 類型的物件
HTTP 請求
GET /api/v1/persistentvolumeclaims
參數
allowWatchBookmarks (在查詢中): 布林值
continue (在查詢中): 字串
fieldSelector (在查詢中): 字串
labelSelector (在查詢中): 字串
limit (在查詢中): 整數
pretty (在查詢中): 字串
resourceVersion (在查詢中): 字串
resourceVersionMatch (在查詢中): 字串
sendInitialEvents (在查詢中): 布林值
timeoutSeconds (在查詢中): 整數
watch (在查詢中): 布林值
回應
200 (PersistentVolumeClaimList): OK
401: 未經授權
create
建立 PersistentVolumeClaim
HTTP 請求
POST /api/v1/namespaces/{namespace}/persistentvolumeclaims
參數
namespace (在路徑中): 字串, 必填
body: PersistentVolumeClaim, 必填
dryRun (在查詢中): 字串
fieldManager (在查詢中): 字串
fieldValidation (在查詢中): 字串
pretty (在查詢中): 字串
回應
200 (PersistentVolumeClaim): OK
201 (PersistentVolumeClaim): Created
202 (PersistentVolumeClaim): Accepted
401: 未經授權
update
更新指定的 PersistentVolumeClaim
HTTP 請求
PUT /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}
參數
name (在路徑中): 字串, 必填
PersistentVolumeClaim 的名稱
namespace (在路徑中): 字串, 必填
body: PersistentVolumeClaim, 必填
dryRun (在查詢中): 字串
fieldManager (在查詢中): 字串
fieldValidation (在查詢中): 字串
pretty (在查詢中): 字串
回應
200 (PersistentVolumeClaim): OK
201 (PersistentVolumeClaim): Created
401: 未經授權
update
更新指定 PersistentVolumeClaim 的狀態
HTTP 請求
PUT /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}/status
參數
name (在路徑中): 字串, 必填
PersistentVolumeClaim 的名稱
namespace (在路徑中): 字串, 必填
body: PersistentVolumeClaim, 必填
dryRun (在查詢中): 字串
fieldManager (在查詢中): 字串
fieldValidation (在查詢中): 字串
pretty (在查詢中): 字串
回應
200 (PersistentVolumeClaim): OK
201 (PersistentVolumeClaim): Created
401: 未經授權
patch
部分更新指定的 PersistentVolumeClaim
HTTP 請求
PATCH /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}
參數
name (在路徑中): 字串, 必填
PersistentVolumeClaim 的名稱
namespace (在路徑中): 字串, 必填
body: Patch, 必填
dryRun (在查詢中): 字串
fieldManager (在查詢中): 字串
fieldValidation (在查詢中): 字串
force (在查詢中): 布林值
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 (在查詢中): 字串
fieldManager (在查詢中): 字串
fieldValidation (在查詢中): 字串
force (在查詢中): 布林值
pretty (在查詢中): 字串
回應
200 (PersistentVolumeClaim): OK
201 (PersistentVolumeClaim): Created
401: 未經授權
delete
刪除 PersistentVolumeClaim
HTTP 請求
DELETE /api/v1/namespaces/{namespace}/persistentvolumeclaims/{name}
參數
name (在路徑中): 字串, 必填
PersistentVolumeClaim 的名稱
namespace (在路徑中): 字串, 必填
body: DeleteOptions
dryRun (在查詢中): 字串
gracePeriodSeconds (在查詢中): 整數
pretty (在查詢中): 字串
propagationPolicy (在查詢中): 字串
回應
200 (PersistentVolumeClaim): OK
202 (PersistentVolumeClaim): Accepted
401: 未經授權
deletecollection
刪除 PersistentVolumeClaim 集合
HTTP 請求
DELETE /api/v1/namespaces/{namespace}/persistentvolumeclaims
參數
namespace (在路徑中): 字串, 必填
body: DeleteOptions
continue (在查詢中): 字串
dryRun (在查詢中): 字串
fieldSelector (在查詢中): 字串
gracePeriodSeconds (在查詢中): 整數
labelSelector (在查詢中): 字串
limit (在查詢中): 整數
pretty (在查詢中): 字串
propagationPolicy (在查詢中): 字串
resourceVersion (在查詢中): 字串
resourceVersionMatch (在查詢中): 字串
sendInitialEvents (在查詢中): 布林值
timeoutSeconds (在查詢中): 整數
回應
200 (Status): OK
401: 未經授權
此頁面為自動產生。
如果您計劃回報此頁面的問題,請在您的問題描述中提及此頁面為自動產生。修正可能需要在 Kubernetes 專案的其他地方進行。