You need to enable JavaScript to run this app.
文档中心
容器服务

容器服务

复制全文
下载 pdf
云盘快照
使用云盘快照
复制全文
下载 pdf
使用云盘快照
本文主要描述云盘快照的静态创建和动态创建方法。​
说明​
【邀测·申请试用】:云盘快照功能目前处于邀测阶段,推荐先在非生产环境中测试,生产环境请谨慎使用。​
使用限制​
云盘快照支持极速可用功能,启用该功能后,无需等待快照创建进度达到 100%,即可使用快照创建新云盘,为您提供更加快速、便捷的快照服务。更多详情,请参见 快照极速可用。​
当您使用云盘快照的极速可用功能时,存在如下限制:​
  1. 快照极速可用功能,仅支持 ESSD_PL0 和 ESSD_FlexPL 类型的云盘。​
  1. 懒加载期间能提供的流量带宽有限,单盘带宽上限为 15~40MB/s 。​
  1. 快照大小不能超过 300GB。​
  1. 使用极速快照创建存储卷的懒加载期间,无法删除快照。​
  1. 单账号在单地域下,最多支持 10 个极速快照处于懒加载状态。​
前提条件​
  • 已安装 csi-ebs 组件。详细操作,请参见 csi-ebs 组件。​
  • 已安装 snapshot-controller 组件。详细操作,请参见 安装组件。​
  • 已通过 kubectl 连接集群。详细操作,请参见 连接集群。​
  • 如需使用云盘快照极速可用功能,需升级 csi-ebs 组件至 v1.2.13 及以上版本。​
动态创建快照​
步骤一:创建 VolumeSnapshotClass​
  1. 创建 VolumeSnapshotClass 的 YAML 文件。示例文件vke-volumesnapshotclass.yaml代码如下:​
  • ​
    apiVersion: snapshot.storage.k8s.io/v1​
    kind: VolumeSnapshotClass​
    metadata:​
    name: vke-volumesnapshotclass # VolumeSnapshotClass 名称​
    parameters:​
    instantAccess: "false" # 是否开启云盘快照极速可用功能,取值:false(不启用)、true(启用)。默认不启用该功能。​
    driver: ebs.csi.volcengine.com # 驱动类型,本示例为 ebs.csi.volcengine.com,表示 csi-ebs 插件​
    deletionPolicy: Delete # 快照回收策略,包括:Delete(删除 VolumeSnapshot 时,同时删除 VolumeSnapshotContent 及相关资源)、Retain(删除 VolumeSnapshot 后,手动删除 VolumeSnapshotContent 及相关资源)​
    ​
  1. 执行以下命令创建 VolumeSnapshotClass。​
  • ​
    kubectl apply -f vke-volumesnapshotclass.yaml​
    ​
步骤二:创建工作负载并写入数据​
创建工作负载(应用)并写入数据,本文以无状态负载(Deployment)为例。​
  1. 创建工作负载的示例文件deployment-nginx.yaml代码如下。详细的操作步骤和说明,请参见 使用云盘动态存储卷。其余类型的工作负载的配置方式,请参见 工作负载。​
  • ​
    apiVersion: apps/v1​
    kind: Deployment​
    metadata:​
    name: deployment-nginx​
    spec:​
    selector:​
    matchLabels:​
    app: nginx​
    template:​
    metadata:​
    labels:​
    app: nginx​
    spec:​
    containers:​
    - name: nginx​
    image: doc-cn-beijing.cr.volces.com/vke/nginx-demo:v1.0 #指定需要部署的镜像文件​
    ports:​
    - containerPort: 80​
    name: web​
    volumeMounts:​
    - name: ebs-essd-volume0​
    mountPath: /data​
    volumes:​
    - name: ebs-essd-volume0​
    persistentVolumeClaim:​
    claimName: pvc-ebs # PVC 名称​
    ​
  1. 执行以下命令,创建工作负载。​
  • ​
    kubectl apply -f deployment-nginx.yaml​
    ​
  1. 为 Pod 写入数据。​
说明​
  • 请将deployment-nginx-6fcb64f6cd-qcxkt替换为您自己的 Pod 名称。​
  • ​
    kubectl exec deployment-nginx-6fcb64f6cd-qcxkt -- touch /data/test ​
    ​
  • 查看数据是否成功写入。​
  • ​
    kubectl exec deployment-nginx-6fcb64f6cd-qcxkt -- ls /data ​
    ​
  • 预期输出结果如下:​
  • ​
    lost+found​
    test ​
    ​
步骤三:创建快照​
  1. 创建 VolumeSnapshot 的 YAML 文件。示例文件vke-snapshot.yaml代码如下:​
  • ​
    apiVersion: snapshot.storage.k8s.io/v1​
    kind: VolumeSnapshot​
    metadata:​
    name: vke-snapshot # 自定义 VolumeSnapshot 名称,此名称将在恢复快照时使用​
    namespace: default # VolumeSnapshot 所属命名空间​
    spec:​
    volumeSnapshotClassName: vke-volumesnapshotclass # 步骤 1 中已创建的 VolumeSnapshotClass​
    source:​
    persistentVolumeClaimName: pvc-ebs # 需要与步骤 2 中工作负载使用的 PVC 名称一致​
    ​
  1. 执行以下命令,创建 VolumeSnapshot。​
  • ​
    kubectl apply -f vke-snapshot.yaml​
    ​
步骤四:结果验证​
  1. 执行以下命令,查看快照是否创建成功。​
  • ​
    kubectl get VolumeSnapshot​
    ​
  • 预期输出结果如下,支持查看云盘快照的状态和来源。​
  • ​
    NAME READYTOUSE SOURCEPVC SOURCESNAPSHOTCONTENT RESTORESIZE SNAPSHOTCLASS SNAPSHOTCONTENT CREATIONTIME AGE​
    vke-snapshot true pvc-ebs 20Gi vke-volumesnapshotclass snapcontent-b863c082-ad70-4*** 2m29s 2m29s​
    ​
  1. 执行以下命令,查看云盘快照的详情。​
  • ​
    kubectl get VolumeSnapshotContent​
    ​
  • 预期输出结果如下:​
  • ​
    NAME READYTOUSE RESTORESIZE DELETIONPOLICY DRIVER VOLUMESNAPSHOTCLASS VOLUMESNAPSHOT VOLUMESNAPSHOTNAMESPACE AGE​
    snapcontent-b863c082-ad70-4*** true 21474836480 Delete ebs.csi.volcengine.com vke-volumesnapshotclass vke-snapshot default 3m12s​
    ​
静态创建快照​
  1. 在 云服务器控制台 创建快照。详细操作,请参见 创建快照。​
  1. (可选)如需使用极速快照功能,需要在配置快照时,添加如下标签。​
  • ​
    标签键​
    标签值​
    ebs.csi.volcengine.com/use-instant-access​
    true​
    ​
  • ​​​
  1. 创建 VolumeSnapshotContent 的 YAML 文件。示例文件vke-snapshotcontent.yaml代码如下:​
  • ​
    apiVersion: snapshot.storage.k8s.io/v1​
    kind: VolumeSnapshotContent​
    metadata:​
    name: vke-snapshotcontent​
    spec:​
    deletionPolicy: Retain # 快照回收策略,包括:Delete(删除 VolumeSnapshot 时,同时删除 VolumeSnapshotContent 及相关资源)、Retain(删除 VolumeSnapshot 后,手动删除 VolumeSnapshotContent 及相关资源)​
    driver: ebs.csi.volcengine.com # 驱动类型,本示例为 ebs.csi.volcengine.com,表示 csi-ebs 插件​
    source:​
    snapshotHandle: snap-f1ksxj7k1d******** # ECS 上已创建的快照 ID​
    volumeSnapshotRef:​
    name: vke-snapshot # 即将要关联创建的 VolumeSnapshot 名称​
    namespace: default # 即将要关联创建的 VolumeSnapshot 所属命名空间​
    ​
  1. 执行如下命令,创建 VolumeSnapshotContent。​
  • ​
    kubectl apply -f vke-snapshotcontent.yaml​
    ​
  1. 创建 VolumeSnapshot 的 YAML 文件。示例文件vke-snapshot.yaml代码如下:​
  • ​
    apiVersion: snapshot.storage.k8s.io/v1​
    kind: VolumeSnapshot​
    metadata:​
    name: vke-snapshot # VolumeSnapshot 名称,要求与步骤 2 中自定义的快照名称保持一致。另外,此名称将在恢复快照时使用 ​
    namespace: default # VolumeSnapshot 所属命名空间,要求与步骤 2 中选择的命名空间保持一致​
    spec:​
    source:​
    volumeSnapshotContentName: vke-snapshotcontent # 步骤 2 中已创建的 VolumeSnapshotContent 名称​
    ​
  1. 执行如下命令,创建 VolumeSnapshot。​
  • ​
    kubectl apply -f vke-snapshot.yaml​
    ​
恢复快照​
动态或静态创建快照后,支持从快照恢复数据到新的 PVC。示例 YAML 文件代码如下所示。详细说明,请参见 使用云盘动态存储卷。​
​
apiVersion: v1​
kind: PersistentVolumeClaim​
metadata:​
name: restore-test​
namespace: default​
spec:​
storageClassName: ebs-ssd​
dataSource:​
name: vke-snapshot # 需要恢复的快照名称,即创建快照时的 VolumeSnapshot 名称。恢复快照时通过快照名称进行识别,务必确保待恢复快照真实存在且可用​
kind: VolumeSnapshot​
apiGroup: snapshot.storage.k8s.io​
accessModes:​
- ReadWriteOnce​
resources:​
requests:​
storage: 20Gi # storage 需要大于等于快照(原云盘)大小​
​
​
最近更新时间:2026.08.19 11:20:53
这个页面对您有帮助吗?
有用
有用
无用
无用