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

結果是一個名為 clone-of-pvc-1 的新 PVC,其內容與指定的源 pvc-1 完全相同。

用途

一旦新的 PVC 可用,克隆的 PVC 將像其他 PVC 一樣被使用。此時,新建立的 PVC 也被視為一個獨立的物件。它可以獨立地使用、克隆、快照或刪除,無需考慮其原始 dataSource PVC。這還意味著源與新建立的克隆沒有任何關聯,也可以修改或刪除源,而不會影響新建立的克隆。

上次修改時間:2023 年 6 月 1 日晚上 9:14 PST:調整儲存/中的行換行 (2886944017)