CSI 卷克隆
本文档介绍了在 Kubernetes 中克隆现有 CSI 卷的概念。建议熟悉卷。
简介
CSI 卷克隆功能增加了对在 dataSource
字段中指定现有 PVC 的支持,以表明用户希望克隆卷。
克隆被定义为现有 Kubernetes 卷的副本,可以像任何标准卷一样使用。唯一的区别是,在配置时,后端设备不是创建 “新” 的空卷,而是创建指定卷的精确副本。
从 Kubernetes API 的角度来看,克隆的实现增加了在创建新 PVC 期间将现有 PVC 指定为 dataSource 的能力。源 PVC 必须已绑定并且可用(未使用)。
使用此功能时,用户需要注意以下事项
- 克隆支持 (
VolumePVCDataSource
) 仅适用于 CSI 驱动程序。 - 克隆支持仅适用于动态配置器。
- CSI 驱动程序可能已经或尚未实现卷克隆功能。
- 仅当 PVC 与目标 PVC 存在于同一命名空间中时,才能克隆 PVC(源和目标必须位于同一命名空间中)。
- 使用不同的存储类支持克隆。
- 目标卷可以与源卷使用相同或不同的存储类。
- 可以使用默认存储类,并在规范中省略 storageClassName。
- 只能在两个使用相同 VolumeMode 设置的卷之间执行克隆(如果请求块模式卷,则源卷也必须是块模式)
配置
克隆的配置方式与任何其他 PVC 类似,但会添加一个 dataSource,该 dataSource 引用同一命名空间中的现有 PVC。
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:调整 storage/ 中的换行 (2886944017)