CSI 卷克隆
本文件介紹了 Kubernetes 中克隆現有 CSI 卷的概念。建議熟悉卷。
介紹
CSI 卷克隆功能增加了在 dataSource
欄位中指定現有 PVC 的支援,以表明使用者希望克隆一個卷。
克隆被定義為現有 Kubernetes 卷的副本,可以像任何標準卷一樣使用。唯一的區別是,在供應時,後端裝置不是建立一個“新”空卷,而是建立指定卷的精確副本。
從 Kubernetes API 的角度來看,克隆的實現增加了在建立新 PVC 時將現有 PVC 指定為資料來源的能力。源 PVC 必須已繫結且可用(未在使用)。
使用此功能時,使用者需要注意以下事項
- 克隆支援 (
VolumePVCDataSource
) 僅適用於 CSI 驅動。 - 克隆支援僅適用於動態供應器。
- CSI 驅動可能實現或未實現卷克隆功能。
- 只有當 PVC 與目標 PVC 存在於同一名稱空間中時(源和目標必須在同一名稱空間中),才能克隆 PVC。
- 支援不同儲存類的克隆。
- 目標卷可以與源卷使用相同的儲存類或不同的儲存類。
- 可以使用預設儲存類,並且在規範中省略 storageClassName。
- 克隆只能在兩個使用相同 VolumeMode 設定的卷之間執行(如果請求塊模式卷,則源也必須是塊模式)
供應
克隆的供應方式與其他任何 PVC 相同,不同之處在於添加了一個引用同一名稱空間中現有 PVC 的 dataSource。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: clone-of-pvc-1
namespace: myns
spec:
accessModes:
- ReadWriteOnce
storageClassName: cloning
resources:
requests:
storage: 5Gi
dataSource:
kind: PersistentVolumeClaim
name: pvc-1
注意
你必須為spec.resources.requests.storage
指定一個容量值,並且你指定的值必須與源卷的容量相同或更大。結果是一個名為 clone-of-pvc-1
的新 PVC,其內容與指定的源 pvc-1
完全相同。
用途
一旦新的 PVC 可用,克隆的 PVC 將像其他 PVC 一樣被使用。此時,新建立的 PVC 也被視為一個獨立的物件。它可以獨立地使用、克隆、快照或刪除,無需考慮其原始 dataSource PVC。這還意味著源與新建立的克隆沒有任何關聯,也可以修改或刪除源,而不會影響新建立的克隆。
上次修改時間:2023 年 6 月 1 日晚上 9:14 PST:調整儲存/中的行換行 (2886944017)