- 文档首页
容器服务
容器服务 VKE
用户指南
存储
云盘存储(EBS)
动态扩容云盘数据卷
动态扩容云盘数据卷
容器服务支持在线扩容 PV 以及对应的云盘文件系统,当待扩容的云盘文件系统未被挂载时,支持重启 Pod 的情况下在线扩容;当待扩容的云盘文件系统已经挂载到节点时,支持不重启 Pod 的情况下在线扩容。本文针对云盘动态存储卷场景,为您介绍扩容云盘的详细操作。
前提条件
- 已创建 v1.20.15-vke.11 及以上版本的容器服务集群,且将 csi-ebs 组件升级为最新版本。
- 已经使用云盘动态存储卷,其中 StorageClass 中设置 allowVolumeExpansion:true。详细介绍参见:使用云盘动态存储卷。
- 为了避免扩容失败导致数据丢失,建议在扩容前备份数据,详细介绍参见:使用云盘快照。
操作步骤
方式一(推荐):重启 Pod 实现离线扩容
待扩容的云盘文件系统未被挂载,能够避免扩容出错和文件系统扩容错误的问题,为了确保文件系统的稳定性,推荐使用该方式进行扩容。
- 执行 kubectl exec [pod_name] df [数据卷挂载路径] 命令,查看扩容前文件系统状态;执行 kubectl get pv [pv_name] 命令,查看 PV 状态。示例如下(PV 和文件系统大小均为 20 GiB):
- 执行kubectl label pv [pv_name] topology.kubernetes.io/zone=nozone命令,为 PV 打一个非法 zone 标签,目的在于 Pod 重启后将无法调度到某个节点上。示例如下:
- 执行kubectl delete pod [pod_name]命令,删除当前 Pod 并重启一个新的 Pod,由于 Pod 对应的 PV 标签是非法 zone,重启后的 Pod 将处于 Pending 状态。示例如下:
说明
执行kubectl delete命令删除 Pod 后,将重启一个新的 Pod,此时 Pod 名称将发生变化。
- 执行kubectl patch pvc [pvc_name] -p '{"spec":{"resources":{"requests":{"storage":"[扩容后的容量]"}}}}'命令,修改 PVC 中的容量,将容量扩容至 30 GiB。示例如下:
说明
推荐扩容后的 PVC 容量大小为 10 的倍数。
- 执行kubectl label pv [pv_name] topology.kubernetes.io/zone-命令,去除 PV 先前打的标签,标签去除后 Pod 即可调度成功。示例如下:
- 执行以下命令,验证扩容结果。从返回结果可以看,Pod 状态为 Running、对应 PV 和文件系统已经从 20 GiB 扩容到 30 GiB。示例如下:
方式二:不重启 Pod 实现在线扩容
在节点上挂载着待扩容的云硬盘文件系统,如果扩容期间存在 I/O 进程,可能会出现文件系统扩容错误的情况,请注意规避。
- 执行 kubectl exec [pod_name] df [数据卷挂载路径] 命令,查看扩容前文件系统状态;执行 kubectl get pv [pv_name] 命令,查看 PV 状态。示例如下(PV 和文件系统大小均为 20 GiB):
- 执行kubectl patch pvc [pvc_name] -p '{"spec":{"resources":{"requests":{"storage":"[扩容后的容量]"}}}}'命令,修改 PVC 中的容量,将容量扩容至 30 GiB。示例如下:
说明
推荐扩容后的 PVC 容量大小为 10 的倍数。
- 重复步骤一中的命令,验证扩容结果。从返回结果可以看到,PV 和文件系统已经从 20 GiB 扩容至 30 GiB。示例如下:
最近更新时间:2025.08.06 11:40:45