随着业务发展,当应用数据增加导致应用挂载的云盘存储空间不足时,您可以扩容云盘来解决问题。云盘动态存储卷支持在线扩容,在不暂停Pod的同时,可以实现云盘扩容,保证业务正常运行。
使用限制
在ACK Serverless集群中,扩容云盘存储卷具有以下限制:
不支持扩容InlineVolume类型的云盘存储卷,即不支持扩容通过非PVC方式挂载的云盘存储卷。
对于通过PVC方式挂载的云盘存储卷,仅支持扩容动态存储卷,即PV绑定的PVC关联了StorageClass。
扩容时仅支持在当前云盘类型的容量范围内扩容,不支持修改云盘类型。
如果云盘类型为普通云盘,则不支持扩容。
准备工作
确认集群中已安装CSI存储组件,且组件已升级到最新版本。更多信息,请参见安装与升级csi-provisioner组件。
检查云盘挂载的Pod的状态,确保Pod处于Running状态。
查看使用的StorageClass的YAML,确保
allowVolumeExpansion
配置为true。说明StorageClass中的
allowVolumeExpansion
默认配置为true,如果您在创建StorageClass时没有配置allowVolumeExpansion
,系统会自动传入allowVolumeExpansion: true
。(可选)创建云盘快照。具体操作,请参见创建快照。
重要为避免云盘扩容过程中出现异常,导致数据丢失,建议您创建云盘快照来备份数据。在完成扩容后,您需要手动删除该快照,避免持续产生快照费用。
开启云盘在线扩容功能
默认情况下,ACK Serverless集群不支持云盘扩容,您需要修改eci-profile,将enablePVCController
配置为true
,开启云盘在线扩容功能。
通过kubectl命令行
连接集群。具体操作,请参见通过kubectl连接Kubernetes集群。
执行以下命令编辑eci-profile。
kubectl edit configmap eci-profile -n kube-system
将
enablePVCController
的值改为true
并保存。
通过控制台
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
选择命名空间为kube-system。
找到eci-profile,单击编辑。
将
enablePVCController
的值改为true
,然后单击确定。
在线扩容云盘
在已有一个应用挂载动态云盘存储卷的情况下,您可以通过以下方式,在不暂停Pod的同时,扩容云盘。
连接集群。具体操作,请参见通过kubectl连接Kubernetes集群。
确认应用内云盘挂载情况。
假设Pod名称为test-0,挂载路径为
/data
,命令示例如下:kubectl exec test-0 -- df /data
返回示例如下:
Filesystem 1K-blocks Used Available Use% Mounted on /dev/vdb 25626852 24 25610444 1% /data
查看PVC。
kubectl get pvc
返回示例如下,PVC名称为
test-pvc
,该PVC绑定的云盘ID为d-uf68pljc3sppvhss****
,容量为25 GiB。NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE test-pvc Bound d-uf68pljc3sppvhss**** 25Gi RWO test-sc <unset> 7m38s
修改PVC信息,扩容云盘容量。
假设PVC名称为
test-pvc
,云盘容量要扩容到30 GiB,命令示例如下:kubectl patch pvc test-pvc -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}'
等待一段时间后,确认云盘是否扩容成功。
查看PVC。
kubectl get pvc
返回示例如下,可以看到云盘
d-uf68pljc3sppvhss****
已扩容到30 GiB。NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE test-pvc Bound d-uf68pljc3sppvhss**** 30Gi RWO test-sc <unset> 18m
查看云盘挂载情况。
kubectl exec test-0 -- df /data
返回示例如下,可以看到已扩容成功。
Filesystem 1K-blocks Used Available Use% Mounted on /dev/vdb 30787492 24 30771084 1% /data