CSI 卷克隆
本文档描述了在 Kubernetes 中克隆现有 CSI 卷的概念。建议熟悉 卷。
介绍
The 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
指定容量值,并且指定的容量值必须与源卷的容量相同或大于源卷的容量。结果是一个新的 PVC,名为 clone-of-pvc-1
,它具有与指定的源 pvc-1
完全相同的内容。
用法
新 PVC 可用后,克隆的 PVC 将像其他 PVC 一样使用。从此时起,还预计新创建的 PVC 是一个独立的对象。它可以独立使用、克隆、快照或删除,而不考虑其原始 dataSource PVC。这也意味着源与新创建的克隆之间没有任何关联,它也可以修改或删除,而不会影响新创建的克隆。
上次修改于 2023 年 6 月 1 日太平洋标准时间下午 9:14:在 storage/ 中调整行换行 (2886944017)