前提条件
- 已创建容器集群
- 已在插件市场安装存储插件cstor-csi,且插件正常运行
使用限制
参见:“云硬盘概述”—“使用限制”
快照使用流程
功能 步骤 操作 创建云硬盘 1 创建PVC:通过动态(StorageClass+PVC)或 静态(PV+PVC)方式创建云盘类型PVC。
2 创建应用并使用云盘类型PVC,业务数据保存至云盘。
创建快照 3 创建快照类。
4 创建快照(基于业务PVC),存储插件自动创建VolumeSnapshotContent和存储端的快照实例。 使用快照恢复应用 5 基于步骤4的快照对象,创建新的PVC。
6 基于新创建的PVC,创建新的应用。
通过控制台使用云盘快照
1、创建云盘类型持久卷声明,参见使用云盘动态存储卷
2、创建快照类(VolumeSnapshotClass)
- 登录“云容器引擎管理控制台;
- 在集群列表页点击进入指定集群;
- 进入主菜单“存储”——“快照与备份”,选择快照类,单击左上角“创建快照类”;
- 在创建对话框,配置快照类的相关参数。配置项说明如下:
- 参数配置完成后,点击“确定”。创建成功后,可以在快照类列表查看。
配置项 说明 名称 VolumeSnapshotClass 名称。 存储类型 当前支持“云盘”和“通用”,这里选择云盘。
具体创建页中展示的存储类型由当前资源池支持情况决定。存储驱动 对应VolumeSnapshotClass yaml中provisioner,值为disk.csi.cstor.com。 删除策略 可以配置当所绑定的 VolumeSnapshot 对象将被删除时,如何处理 VolumeSnapshotContent 对象,该策略字段必须指定:
Delete(删除):底层的存储快照会和 VolumeSnapshotContent 对象 一起删除;
Retain(保留): 底层快照和 VolumeSnapshotContent 对象都会被保留。默认快照类 管理员可以为未请求任何特定类绑定的 VolumeSnapshots 指定默认的 VolumeSnapshotClass
对应VolumeSnapshotClass yaml中体现为设置注解 snapshot.storage.kubernetes.io/is-default-class: "true"。存储库 当快照类型为标准快照时,必填存储库。
存储库需跳转云盘控制台创建,当前存储插件不支持同名存储库。参数 快照类具有描述属于该卷快照类的卷快照的参数,可根据存储驱动接受不同的参数。
3、创建快照(VolumeSnapshot)
- 进入主菜单“存储”——“快照与备份”,选择快照,单击左上角“创建快照”;
- 在创建对话框,配置快照的相关参数。配置项说明如下:
- 参数配置完成后,点击“确定”。创建成功后,可以在快照列表查看。
配置项 说明 名称 VolumeSnapshot 名称 存储类型 这里选择云盘。
具体创建页中展示的存储类型由当前资源池支持情况决定。快照类 选择上一步创建的VolumeSnapshotClass 存储卷声明 选择要创建快照的PVC,仅能选择云硬盘类型PVC。
通过控制台使用云盘快照
- 登录“云容器引擎”管理控制台;
- 在集群列表页点击进入指定集群;
- 进入主菜单 “存储”——“快照与备份”,进入快照列表页,选择指定快照,点击操作“创建存储卷快照PVC”
- 在创建对话框,配置PVC的相关参数。配置项说明如下:
- 参数配置完成后,点击“确定”。创建成功后,可以在持久卷声明列表查看。
- 进入持久卷声明列表页,等待PVC状态为“已绑定” 。此时,进入主菜单“存储”——“持久卷“,可以看到对应的PV创建 。
- 如果PVC一直未绑定,可以查看进入对应PVC详情页查看事件,或者查看cstor-csi日志进行定位。
配置项 说明 名称 PVC的名称 存储声明类型 当前支持云盘、弹性文件和对象存储,这里选择云盘。
具体创建页中展示的存储类型由当前资源池支持情况决定。StorageClass名称 选择上一步创建的StorageClass 容量 最小容量为快照大小 卷模式 说明:如果使用共享盘存储,卷模式仅支持块设备(Block)。
文件系统(Filesystem):默认方式,该类型卷会被 Pod 挂载(Mount) 到某个目录。 如果卷的存储来自某块设备而该设备目前为空,Kuberneretes 会在第一次挂载卷之前在设备上创建文件系统。
块设备(Block): 这类卷以块设备的方式交给 Pod 使用,其上没有任何文件系统。 这种模式对于为 Pod 提供一种使用最快可能方式来访问卷而言很有帮助, Pod 和卷之间不存在文件系统层。
访问模式 ReadWriteOnce:卷可以被一个节点以读写方式挂载
ReadOnlyMany:卷可以被多个节点以只读方式挂载
ReadWriteMany:卷可以被多个节点以读写方式挂载
说明:如果使用非共享盘存储,访问模式不能为ReadWriteMany。高级选项 可用区:可以根据需要手动选择PVC对应存储的可用区。该操作即在PVC上打上标签如下:topology.kubernetes.io/zone: xxxx
照通过kubectl命令行使用云盘快照
1、创建快照类(VolumeSnapshotClass)
-
使用kubectl连接集群,创建示例yaml文件vsc-example.yaml:
apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotClass metadata: name: {名称} annotations: snapshot.storage.kubernetes.io/is-default-class: "false" #是否默认存储类 driver: disk.csi.cstor.com parameters: snapshotType: "STANDARD" #快照类型 # 快照存储库名字,必填 snapshotRepository: {仓库名} deletionPolicy: {删除策略}
-
执行以下命令,创建VolumeSnapshotClass:
kubectl apply -f vsc-example.yaml
-
查看创建的VolumeSnapshotClass:
登录“云容器引擎”管理控制台,在集群列表页点击进入指定集群,进入主菜单“存储”——“快照与备份”,在快照类列表查看。
2、创建快照(VolumeSnapshot)
-
使用kubectl连接集群,创建示例yaml文件vs-example.yaml:
apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshot metadata: name: {名称} namespace: {命名空间} spec: volumeSnapshotClassName: {快照类} source: persistentVolumeClaimName: {PVC-name}
-
执行以下命令,创建VolumeSnapshot:
kubectl apply -f vs-example.yaml
-
查看创建的快照:
登录“云容器引擎”管理控制台,在集群列表页点击进入指定集群,进入主菜单“存储”——“快照与备份”,在快照列表查看。
3、基于快照创建PVC
-
使用kubectl连接集群,创建示例yaml文件pvc-vs-example.yaml:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: {名称} namespace: {命名空间} spec: storageClassName: {存储类名称} dataSource: name: {VolumeSnapshot名称} kind: VolumeSnapshot apiGroup: snapshot.storage.k8s.io accessModes: - {访问模式} resources: requests: storage: {容量} volumeMode: {卷模式}
-
执行以下命令,创建PVC:
kubectl apply -f pvc-vs-example.yaml
-
查看创建的PVC:
登录“云容器引擎”管理控制台,在集群列表页点击进入指定集群,进入主菜单“存储”——“持久卷声明”,在列表查看。