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)