- 文档首页
容器服务
容器服务 VKE
用户指南
存储
云盘存储(EBS)
使用云盘动态存储卷
使用云盘动态存储卷
本文介绍如何创建云盘类型存储类和存储卷声明,以及工作负载如何使用云盘动态存储卷。
前提条件
- 已安装 csi-ebs 组件。详情请参见 安装组件。
- 如需配置云盘格式化参数,需将 csi-ebs 组件升级至 v1.3.0 及以上版本。详情请参见 升级组件。
- (可选)如需配置云盘加密功能,需提前开通 KMS 密钥管理系统,并完成密钥创建。具体操作,请参见 密钥管理快速入门。
- (可选)若使用 YAML 配置,请确保已经在本地环境中安装 kubectl 工具,连接至目标集群。详情请参见 连接集群。
使用限制
- 暂不支持挂载、卸载包年包月类型的云盘,请勿将云盘的计费类型改为包年包月。详情请参见 云盘 FAQ。
- 云盘为非共享存储,仅支持 ReadWriteOnce 模式,即仅能被一个 Pod 以读写方式挂载。
- 有状态负载每个 Pod 实例需要独占一个卷,不支持所有 Pod 实例共用一个手动创建的存储卷声明。
- 无状态负载挂载云盘时,Replicas需要配置为 1,无法为每个 Pod 配置独立的存储卷,且不能保证挂载、卸载的优先顺序。
- 由于无状态负载的升级策略,重启 Pod 时可能导致 Pod 一直无法挂载,因此,推荐使用有状态负载(StatefulSet)挂载使用云盘。
- 云盘类型和 ECS 实例规格需要匹配才可以挂载,否则会挂载失败。详情请参见 实例规格介绍。
- 云盘只能挂载到相同可用区的 ECS 实例,不支持跨可用区挂载。
- 每个节点最多可挂载云盘数量由 ECS 实例规格和 csi-ebs 组件的配置决定,如需修改节点预留盘数量,可以至 csi-ebs 组件配置中进行修改。
- 当 csi-ebs 组件的 节点保留盘数量 配置为空时,系统会预留 30% 给系统盘和数据盘。例如:若 ECS 实例最多允许挂 16 块云盘,则容器服务最多允许挂载 16*(1-0.3)= 12 块云盘。
- 当 csi-ebs 组件的 节点保留盘数量 配置不为空时,系统会根据配置预留数据盘。例如:若 ECS 实例最多允许挂 16 块云盘,同时在 csi-ebs 组件中配置 节点保留盘数量 为 1 时,则容器服务最多允许挂载 16-1 = 15 块云盘。
- 当 csi-ebs 组件版本低于 v1.1.2 时,不支持使用三代机(例如:g3i、c3i、r3i 等)。建议定期升级组件到最新版本,详情请参见 csi-ebs 组件发布记录。
- 使用云盘存储卷时,若在应用模板中配置了securityContext.fsGroup参数,kubelet 在存储卷挂载完成后会执行chmod和chown操作,导致挂载时间延长。
- 使用云盘存储卷时,若未格式化的磁盘大于 2Ti,会执行格式化,导致挂载时间延长。
- 云盘加密功能仅支持部分机型和地域,详情请参见 云盘加密。
- 请确认目标地域、实例机型和云盘类型均已支持加密能力。原则上,启用云盘加密后,集群内所有可用于调度的节点都应具备加密能力。若无法保证所有节点均支持加密,建议通过节点标签隔离资源,并结合调度亲和性进行约束,避免工作负载被调度到不支持加密的节点上。
通过控制台配置
步骤一:创建存储类(StorageClass)
- 在左侧导航栏中,选择 集群。单击目标集群名称,进入集群管理页面。
- 在集群管理页面左侧导航栏中,选择 存储管理 > 存储类。
- 单击 创建存储类,在弹出的配置页面中,完成参数配置。
-
- 在集群管理页面左侧导航栏中,选择 存储管理 > 存储卷声明。
- 单击 创建存储卷声明,在弹出的配置页面中,完成参数配置。
-
步骤三:创建应用并挂载存储卷
云盘类型的动态存储卷创建完成后,可通过添加卷的方式挂载到工作负载使用,包括:无状态负载、有状态负载、任务、定时任务、守护进程。
可通过创建工作负载或更新工作负载操作的容器配置步骤,为工作负载添加卷并挂载卷。详细操作,请参见 工作负载。
通过 kubectl 命令行配置
已经 连接集群 的情况下,可通过 kubectl 命令行使用云盘动态存储卷。 步骤一:创建存储类(StorageClass)
- 创建 StorageClass 的 YAML 文件。示例文件storage-class-ebs.yaml代码如下:
ESSD 类型云盘
TSSD 类型云盘
RSSD 类型云盘
创建极速型云盘(ESSD) 类型的 SC 示例如下:
创建吞吐型云盘(TSSD)类型的 SC 示例如下:
创建弹性远程盘(RSSD)类型的 SC 示例如下:
- 创建 PVC 的 YAML 文件。示例文件pvc-ebs-dynamic.yaml代码如下:
步骤三:创建应用并挂载存储卷
云盘类型的动态存储卷创建完成后,可通过添加卷的方式挂载到工作负载使用,包括:无状态负载、有状态负载、任务、定时任务、守护进程。下文以有状态负载(StatefulSet)为例。
- 创建 StatefulSet 的 YAML 文件。示例文件statefulset-nginx-dynamic.yaml代码如下:
配置完成后,系统会自动创建存储卷。您可以登录控制台,查看存储卷的详情。
- 在集群管理页面左侧导航栏中,选择 存储管理 > 存储卷。查看自动生成的存储卷。其中pvc-a886***为系统自动创建的云盘名称。
-
- 在左侧导航栏中,选择 存储 > 云盘。在云盘列表中找到目标云盘(名称格式为pvc-a886***)。
- 单击云盘名称,进入云盘详情,即可查看该云盘的详细信息。
-
按照上文示例创建工作负载并挂载存储卷后,您可以通过以下方式验证云盘的挂载和持久化存储。
- 执行以下命令,查看存储卷是否正确挂载到 Pod 的指定路径。
- 查看 Pod 中的挂载路径,即查看存储卷中的数据。
说明
删除工作负载中的 Pod 后,系统会自动创建一个新的 Pod。并且名称不变。
- 预期返回如下,可以看到存储卷中写入的文件依然存在,未随着 Pod 的删除而被删除,实现了数据的持久化存储。
相关文档
最近更新时间:2026.10.12 15:27:19