配置卷快照的方式按类型可分为动态制备卷快照和预制备卷快照。
- 动态制备卷快照通过创建VolumeSnapshot资源,从PVC中动态获取并创建快照,而不用使用已经存在的快照。
- 预制备卷快照需要管理员事先在存储设备上创建好所需要的快照,通过创建VolumeSnapshotContent的方式使用已存在的快照。并且可以在创建VolumeSnapshot时指定关联的VolumeSnapshotContent。
配置卷快照的方式按类型可分为动态制备卷快照和预制备卷快照。
本章节将说明如何使用华为CSI动态制备卷快照。
VolumeSnapshot的配置文件示例如下:
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
name: mysnapshot
spec:
volumeSnapshotClassName: mysnapclass
source:
persistentVolumeClaimName: mypvc
实际参数可以参考 表1 中的说明修改。
表 1 VolumeSnapshot参数说明
以Kubernetes v1.22.1为例,支持数字、小写字母、中划线(-)和点(.)的组合,并且必须以字母数字字符开头和结尾。 | ||
执行以下命令,使用已经创建的VolumeSnapshot配置文件创建VolumeSnapshot。
kubectl create -f mysnapshot.yaml
执行以下命令,查看已创建的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
本章节将说明如何使用华为CSI预制备卷快照。
VolumeSnapshotContent的配置文件示例如下:
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotContent
metadata:
name: mysnapshotcontent
spec:
deletionPolicy: Retain
driver: csi.huawei.com
volumeSnapshotRef:
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
name: mysnapshot
namespace: default
source:
snapshotHandle: mybackend.1.snapshot_001
volumeSnapshotClassName: "mysnapclass"
实际参数可以参考 表1 中的说明修改。
表 1 VolumeSnapshotContent参数说明
执行以下命令,使用已经创建的VolumeSnapshotContent配置文件创建VolumeSnapshotContent。
kubectl create -f mysnapshotcontent.yaml
执行以下命令,查看已创建的VolumeSnapshot信息。
kubectl get volumesnapshotcontent
命令结果示例如下:
NAME READYTOUSE RESTORESIZE DELETIONPOLICY DRIVER VOLUMESNAPSHOTCLASS VOLUMESNAPSHOT VOLUMESNAPSHOTNAMESPACE AGE
mysnapshotcontent true 0 Retain csi.huawei.com mysnapclass mysnapshot default 4s
当VolumeSnapshotContent以预制备方式创建完成后,可以基于该VolumeSnapshotContent创建VolumeSnapshot。VolumeSnapshot的配置文件示例如下:
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
name: mysnapshot
namespace: default
spec:
volumeSnapshotClassName: mysnapclass
source:
volumeSnapshotContentName: mysnapshotcontent
实际参数可以参考 表2 中的说明修改。
表 2 VolumeSnapshot参数说明
以Kubernetes v1.22.1为例,支持数字、小写字母、中划线(-)和点(.)的组合,并且必须以字母数字字符开头和结尾。 | ||
执行以下命令,使用已经创建的VolumeSnapshot配置文件创建VolumeSnapshot。
kubectl create -f mysnapshot.yaml
执行以下命令,查看已创建的VolumeSnapshot信息。
kubectl get volumesnapshot
命令结果示例如下:
NAME READYTOUSE SOURCEPVC SOURCESNAPSHOTCONTENT RESTORESIZE SNAPSHOTCLASS SNAPSHOTCONTENT CREATIONTIME AGE
mysnapshot true mysnapshotcontent 0 mysnapclass mysnapshotcontent 2m39s 8s