CSI 卷克隆
本文档介绍了在 Kubernetes 中克隆现有 CSI 卷的概念。建议熟悉卷。
简介
CSI 卷克隆功能增加了对在 dataSource
字段中指定现有 PVC 的支持,以指示用户希望克隆 卷。
克隆被定义为现有 Kubernetes 卷的副本,可以像任何标准卷一样使用。唯一的区别是,在配置时,后端设备不会创建“新的”空卷,而是创建指定卷的精确副本。
从 Kubernetes API 的角度来看,克隆的实现增加了在创建新 PVC 期间将现有 PVC 指定为数据源的能力。源 PVC 必须绑定且可用(未使用)。
使用此功能时,用户需要注意以下几点
- 克隆支持 (
VolumePVCDataSource
) 仅适用于 CSI 驱动程序。 - 克隆支持仅适用于动态供应器。
- CSI 驱动程序可能已实现也可能未实现卷克隆功能。
- 只有当 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 进行使用、克隆、快照或删除,而无需考虑其原始 dataSource PVC。这也意味着源不会以任何方式链接到新创建的克隆,它也可以在不影响新创建的克隆的情况下进行修改或删除。
上次修改时间:2023 年 6 月 1 日太平洋标准时间晚上 9:14:调整 storage/ 中的换行(2886944017)