配置VolumeSnapshot

VolumeSnapshot可以通过两种方式进行制备:预制备或动态制备。华为CSI当前仅支持动态制备。本章节将说明如何使用华为CSI动态制备VolumeSnapshot。

VolumeSnapshot的配置文件示例如下:

  • 如果您的环境中api-versions支持v1,请使用以下示例:

    apiVersion: snapshot.storage.k8s.io/v1
    kind: VolumeSnapshot
    metadata:
      name: mysnapshot
    spec:
      volumeSnapshotClassName: mysnapclass
      source:
        persistentVolumeClaimName: mypvc
    
  • 如果您的环境中api-versions支持v1beta1,请使用以下示例:

    apiVersion: snapshot.storage.k8s.io/v1beta1
    kind: VolumeSnapshot
    metadata:
      name: mysnapshot
    spec:
      volumeSnapshotClassName: mysnapclass
      source:
        persistentVolumeClaimName: mypvc
    
  • VolumeSnapshot中api-versions信息,请和创建VolumeSnapshotClass使用的版本保持一致。

实际参数可以参考 表1 中的说明修改。

表 1 VolumeSnapshot参数说明

参数

说明

备注

metadata.name

自定义的VolumeSnapshot对象名称。

以Kubernetes v1.22.1为例,支持数字、小写字母、中划线(-)和点(.)的组合,并且必须以字母数字字符开头和结尾。

spec.volumeSnapshotClassName

VolumeSnapshotClass对象名称。

--

spec.source.persistentVolumeClaimName

源PVC对象名称。

快照源PVC对应的名称

前提条件

  • 源PVC存在,且PVC所在的backend存在支持创建VolumeSnapshot。支持创建VolumeSnapshot的存储请参考 表2表2 ,支持创建VolumeSnapshot的Kubernetes版本请参考 表1
  • 华为CSI运行所依赖的卷快照组件CRD已经安装。具体信息请参考 检查卷快照依赖组件 章节说明。
  • 系统中已经存在使用华为CSI的VolumeSnapshotClass。

操作步骤

  1. 执行以下命令,使用已经创建的VolumeSnapshot配置文件创建VolumeSnapshot。

    kubectl create -f mysnapshot.yaml
    
  2. 执行以下命令,查看已创建的VolumeSnapshot信息。

    kubectl get volumesnapshot
    

    命令结果示例如下:

    NAME         READYTOUSE   SOURCEPVC   SOURCESNAPSHOTCONTENT   RESTORESIZE   SNAPSHOTCLASS   SNAPSHOTCONTENT                                    CREATIONTIME   AGE
    mysnapshot   true         mypvc                               100Gi         mysnapclass     snapcontent-1009af0a-24c2-4435-861c-516224503f2d   <invalid>      78s