You need to enable JavaScript to run this app. Kubernetes集群管理员如何创建VolumeSnapshotContents
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes集群管理员如何创建VolumeSnapshotContents

静态预配置Kubernetes EBS卷快照操作指南

Kubernetes卷快照概念文档提及卷快照支持预配置:

集群管理员可创建多个VolumeSnapshotContents,这类对象承载存储系统上真实卷快照的详细信息,可供集群用户使用,存在于Kubernetes API中可被消费。

报错根因

操作失败的核心原因是手动创建的PV使用了K8s内置的AWSElasticBlockStore存储类型,而卷快照功能仅支持CSI驱动管理的存储卷,快照控制器无法识别非CSI类型的PV源,因此抛出cannot find CSI PersistentVolumeSource for volume错误。

静态预配置EBS卷快照的正确流程

不需要额外创建PV、PVC,直接基于已有的EBS快照创建VolumeSnapshotContent(简称VSC)和VolumeSnapshot(简称VS)即可,步骤如下:

  • 前置检查:确认集群已安装EBS CSI驱动、snapshot-controller组件,且已创建适配EBS CSI驱动的VolumeSnapshotClass,驱动字段为ebs.csi.aws.com
  • 步骤1:创建VolumeSnapshotContent
    示例YAML如下:
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotContent
metadata:
  name: precreated-ebs-snapshot-content
spec:
  deletionPolicy: Retain # 若需要删除VS时同时删除后端EBS快照可改为Delete
  driver: ebs.csi.aws.com
  source:
    snapshotHandle: aws://<AWS区域ID>/<你的EBS快照ID> # 示例:aws://cn-northwest-1/snap-0123456789abcdef
  volumeSnapshotClassName: ebs-csi-snapshot-class # 替换为你实际的VolumeSnapshotClass名称
  volumeSnapshotRef:
    name: mongodb-restore-snapshot
    namespace: <你的业务命名空间>
  • 步骤2:创建VolumeSnapshot绑定上述VSC
    示例YAML如下:
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
  name: mongodb-restore-snapshot
  namespace: <你的业务命名空间>
spec:
  source:
    volumeSnapshotContentName: precreated-ebs-snapshot-content
  volumeSnapshotClassName: ebs-csi-snapshot-class # 和VSC配置的类名保持一致
  • 步骤3:验证快照可用
    执行kubectl get volumesnapshot mongodb-restore-snapshot -n <命名空间>,待READY_TO_USE字段变为true即可使用。
  • 步骤4:用快照恢复MongoDB数据
    创建PVC时指定数据源为上述VS,即可将EBS快照的数据恢复到新PVC中,再使用该PVC部署Bitnami MongoDB副本集即可,PVC示例如下:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mongodb-data-pvc
  namespace: <你的业务命名空间>
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: ebs-csi-sc # 替换为你实际使用的EBS CSI StorageClass名称
  resources:
    requests:
      storage: <和原快照容量一致的存储大小>
  dataSource:
    name: mongodb-restore-snapshot
    kind: VolumeSnapshot
    apiGroup: snapshot.storage.k8s.io

额外说明

如果确实需要手动创建PV用于其他场景,需要将PV的Source字段配置为CSI类型,和集群自动生成的PV格式一致,不要使用旧的AWSElasticBlockStore类型,否则无法使用快照、扩容等CSI专属功能。

内容的提问来源于stack exchange,提问作者David Resnick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 16:09:03