5.1 KiB
title | content_template | weight |
---|---|---|
CSI 卷克隆 | templates/concept | 30 |
{{% capture overview %}}
{{< feature-state for_k8s_version="v1.16" state="beta" >}}
本文档描述 Kubernetes 中克隆现有 CSI 卷的概念。建议先熟悉卷。
此功能需要启动 VolumePVCDataSource 功能门:
--feature-gates=VolumePVCDataSource=true
{{% /capture %}}
{{% capture body %}}
介绍
{{< glossary_tooltip text="CSI" term_id="csi" >}} 卷克隆功能增加了在 dataSource
字段指定现有的 {{< glossary_tooltip text="PVC" term_id="persistent-volume-claim" >}}s,来表示用户想要克隆的 {{< glossary_tooltip term_id="volume" >}}。
克隆定义为已有 Kubernetes 卷的副本,可以像任何标准卷一样被使用。唯一的区别就是配置后,后端设备将创建指定卷的精确副本,而不是创建一个“新的”空卷。
从 Kubernetes API 的角度看,克隆的实现只是在创建新的 PVC 时,增加了指定一个现有未绑定 PVC 作为数据源的能力。
用户在使用该功能时,需要注意以下事项:
- 克隆支持(
VolumePVCDataSource
)仅适用于 CSI 驱动。 - 克隆支持仅适用于 动态供应器。
- CSI 驱动可能实现,也可能未实现卷克隆功能。
- 仅当 PVC 与目标 PVC 存在于同一命名空间(源和目标 PVC 必须在相同的命名空间)时,才可以克隆 PVC。
- 仅在同一存储类中支持克隆。
- 目标卷必须和源卷具有相同的存储类
- 可以使用默认的存储类并且 storageClassName 字段在规格中忽略了
供应
克隆卷与其他任何 PVC 一样配置,除了需要增加 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
结果是一个名称为 clone-of-pvc-1
的新 PVC 与指定的源 pvc-1
拥有相同的内容。
用法
一旦新的 PVC 可用,被克隆的 PVC 项其他 PVC 一样被使用。可以预期的是,新创建的 PVC 是一个独立的对象。可以独立使用,克隆,快照或删除它,而不需要考虑它的原始数据源 PVC。这也意味着,源没有以任何方式链接到新创建的 PVC,它也可以被修改或删除,而不会影响到新创建的克隆。
{{% /capture %}}