如需为 PVC 数据盘创建快照来备份数据,或者将备份的快照数据恢复到新的 PVC 中,可以通过 CBS CSI 插件来实现,本文将介绍如何利用 CBS CSI 插件实现 PVC 的数据备份与恢复。
使用以下 YAML,创建 VolumeSnapshotClass 对象。示例如下:
apiVersion: snapshot.storage.k8s.io/v1beta1
kind: VolumeSnapshotClass
metadata:
name: cbs-snapclass
driver: com.tencent.cloud.csi.cbs
deletionPolicy: Delete
执行以下命令,检查 VolumeSnapshotClass 是否创建成功。示例如下:
$ kubectl get volumesnapshotclass
NAME DRIVER DELETIONPOLICY AGE
cbs-snapclass com.tencent.cloud.csi.cbs Delete 17m
本文以 new-snapshot-demo
快照名为例创建 VolumeSnapshot。使用以下 YAML,创建 VolumeSnapshot 对象。示例如下:
apiVersion: snapshot.storage.k8s.io/v1beta1
kind: VolumeSnapshot
metadata:
name: new-snapshot-demo
spec:
volumeSnapshotClassName: cbs-snapclass # 引用上述步骤创建的 VolumeSnapshotClass
source:
persistentVolumeClaimName: ssd-pvc # 替换成需要备份的 pvc 名称
执行以下命令,查看 Volumesnapshot 和 Volumesnapshotcontent 对象是否创建成功,若 READYTOUSE
为 true,则创建成功。示例如下:
$ kubectl get volumesnapshot
NAME READYTOUSE SOURCEPVC SOURCESNAPSHOTCONTENT RESTORESIZE SNAPSHOTCLASS SNAPSHOTCONTENT CREATIONTIME AGE
new-snapshot-demo true ssd-pvc 20Gi cbs-snapclass snapcontent-170b2161-f158-4c9e-a090-a38fdfd84a3e 2m36s 2m50s
$ kubectl get volumesnapshotcontent
NAME READYTOUSE RESTORESIZE DELETIONPOLICY DRIVER VOLUMESNAPSHOTCLASS VOLUMESNAPSHOT AGE
snapcontent-170b2161-f158-4c9e-a090-a38fdfd84a3e true 21474836480 Delete com.tencent.cloud.csi.cbs cbs-snapclass new-snapshot-demo 3m3s
执行以下命令,可以获取 Volumesnapshotcontent 对象的快照 ID,字段是 status.snapshotHandle
(如下为 snap-rsk8v75j),可以根据快照 ID 在 容器服务控制台 确认快照是否存在。示例如下:
$ kubectl get volumesnapshotcontent -o yaml snapcontent-170b2161-f158-4c9e-a090-a38fdfd84a3e
...
status:
creationTime: 1607331318000000000
readyToUse: true
restoreSize: 21474836480
snapshotHandle: snap-rsk8v75j
本文以上述 步骤 创建的 VolumeSnapshot 对象名称 new-snapshot-demo
为例,使用以下 YAML 从快照恢复数据到新的 PVC 中。示例如下:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: restore-test
spec:
storageClassName: ssd-csi # storage class 根据自身需求自定义
dataSource:
name: new-snapshot-demo # 引用上述步骤创建的 VolumeSnapshot
kind: VolumeSnapshot
apiGroup: snapshot.storage.k8s.io
accessModes:
- ReadWriteOnce # CBS 为块存储,只支持单机读写
resources:
requests:
storage: 50Gi # 建议大小与被恢复的 PVC 写成一致
执行以下命令,可以查看 PVC 已经创建并绑定 PV,从 PV 中也可以查看到对应的 diskid(如下为 disk-ju0hw7no)。示例如下:
$ kubectl get pvc restore-test
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
restore-test Bound pvc-940edf09-d622-4126-992b-0a209f048c7d 60Gi RWO ssd-topology 6m8s
$ kubectl get pv pvc-940edf09-d622-4126-992b-0a209f048c7d -o yaml
...
spec:
...
volumeHandle: disk-ju0hw7no
...
说明:如果 StorageClass 使用了拓扑感知(先调度 Pod 再创建 PV),即指定
volumeBindingMode: WaitForFirstConsumer
,则需要先部署 Pod(需挂载 PVC)才会触发创建 PV(从快照创建新的 CBS 并与 PV 绑定)。
单路机架服务器市场无论从机型、还是价格,一直以来,都相对稳定。进入到2012年1...
作为一个云桌面管理员,为了实现统一的桌面计算环境通常都会使用桌面模版来批量...
redis 全称 remote dictionary server 存储系统 RDBMS关系型数据库: MYSQL?/?SQL...
本章节介绍如何查看抢占式实例的账单。 背景信息 与按量付费实例的收费金额不同...
? 背景介绍 ? 项目中有使用到 com.github.dreamroute excel-helper 这个工具来辅...
本教程通过镜像构建服务构建Nginx开发环境的自定义镜像,并通过该镜像创建实例进...
数据分为结构化和非结构化两种。尽管大数据为各种规模的组织提供了许多洞察和分...
本文介绍如何在f1实例上使用OpenCL(Open Computing Language)制作镜像文件,并...
编者按:本文源自阿里云云效团队出品的《阿里巴巴DevOps实践指南》,扫描上方二...
原文 | https://www.pulumi.com/blog/is_serverless_the_future_part_1/ 作者 | ...