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)