- 文档首页
容器服务
容器服务 VKE
用户指南
存储
云盘存储(EBS)
使用云盘静态存储卷
使用云盘静态存储卷
云盘,即弹性块存储 EBS(Elastic Block Storage),是一种高可用、高可靠、高性能、弹性扩展的块存储设备,支持作为容器服务的扩展存储使用。本文介绍如何创建云盘类型的静态存储卷,以及工作负载如何挂载并使用云盘静态存储卷。
前提条件
- 已安装 csi-ebs 组件。详情请参见 安装组件。
- 已创建未挂载到 ECS 实例的云盘。详情请参见 创建云盘。
- 如需配置云盘格式化参数,需将 csi-ebs 组件升级至 v1.3.0 及以上版本。详情请参见 升级组件。
- (可选)若使用 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,会执行格式化,导致挂载时间延长。
通过控制台配置
步骤一:创建存储卷(PV)
- 在左侧导航栏中,选择 集群。单击目标集群名称,进入集群管理页面。
- 在集群管理页面左侧导航栏中,选择 存储管理 > 存储卷。
- 单击 创建存储卷,在弹出的配置页面中,完成参数配置。
-
步骤二:创建存储卷声明(PVC)
- 在集群管理页面左侧导航栏中,选择 存储管理 > 存储卷声明。
- 单击 创建存储卷声明,在弹出的配置页面中,完成参数配置。
-
步骤三:创建应用并挂载存储卷
云盘类型的静态存储卷创建完成后,可通过添加卷的方式挂载到工作负载使用,包括:无状态负载、有状态负载、任务、定时任务、守护进程。
可通过创建工作负载或更新工作负载操作的容器配置步骤,为工作负载添加卷并挂载卷。详细操作,请参见 工作负载。
通过 kubectl 命令行配置
已经 连接集群 的情况下,可通过 kubectl 命令行使用云盘静态存储卷。 步骤一:创建存储卷(PV)
- 创建 PV 的 YAML 文件。示例文件pv-ebs-static.yaml代码如下:
ESSD 类型云盘
TSSD 类型云盘
RSSD 类型云盘
创建极速型云盘(ESSD) 类型的 PV 示例如下:
创建吞吐型云盘(TSSD)类型的 PV 示例如下:
创建弹性远程盘(RSSD)类型的 PV 示例如下:
步骤二:创建存储卷声明(PVC)
- 创建 PVC 的 YAML 文件。示例文件pvc-ebs-static.yaml的代码如下:
步骤三:创建应用并挂载存储卷
云盘类型的静态存储卷创建完成后,可通过添加卷的方式挂载到工作负载使用,包括:无状态负载、有状态负载、任务、定时任务、守护进程。下文以有状态负载(StatefulSet)为例。
- 创建 StatefulSet 的 YAML 文件。示例文件statefulset-nginx-static.yaml代码如下:
按照上文示例创建工作负载并挂载存储卷后,您可以通过以下方式验证云盘的挂载和持久化存储。
- 执行以下命令,查看存储卷是否正确挂载到 Pod 的指定路径。
- 查看 Pod 中的挂载路径,即查看存储卷中的数据。
说明
删除工作负载中的 Pod 后,系统会自动创建一个新的 Pod。并且名称不变。
- 预期返回如下,可以看到存储卷中写入的文件依然存在,未随着 Pod 的删除而被删除,实现了数据的持久化存储。
相关文档
最近更新时间:2026.09.01 20:15:26