ACK支持在1.16及以上版本的集群中实现CSI云盘在线扩容。本文介绍应用在线时如何动态扩容云盘,从而增加云盘空间。
使用说明
数据备份
扩容存储卷前,请先备份云盘快照,以防扩容过程异常导致数据出现问题。
适用范围
只有动态存储卷才可以进行存储卷动态扩容,即配置了StorageClassName的PVC。
不支持扩容InlineVolume类型(非PV、PVC方式)的云盘存储卷。
不支持动态扩容普通云盘类型。
StorageClass需要配置为AllowVolumeExpansion: True。ACK集群默认提供的StorageClass为True,自建的StorageClass需要自行配置。
应用Pod需处于Running状态。
插件版本
升级您使用的CSI插件到最新版本。
为RAM用户添加ResizeDisk权限
实现云盘在线扩容前,您需要为集群的RAM角色添加ResizeDisk权限。针对不同集群和插件类型,添加ResizeDisk权限的步骤如下:
ACK专有集群(CSI插件)
登录容器服务管理控制台。
在控制台左侧导航栏中,单击集群。
在集群列表页面,选中目标集群,并在目标集群右侧操作列下,单击详情。
在集群管理页左侧导航栏中,单击集群信息。
单击集群资源页签,单击Master RAM角色链接。
在RAM控制台中,添加ResizeDisk权限。添加权限具体步骤,请参见改自定义权限策略内容和备注。
ACK专有集群(Flexvolume插件)、ACK托管集群(所有插件类型)
重复上述前4个步骤,然后在集群管理页面单击Worker RAM 角色链接。
不重启容器实现在线扩容
使用命令行工具连接ACK集群,请参见步骤二:选择集群凭证类型。
本文假设应用的当前状态如下。
执行以下命令获取Pod信息。
kubectl get pod
预期输出:
<YOUR-POD-NAME> 1/1 Running 0 42s
执行以下命令查看Pod的挂载详情。
kubectl exec <YOUR-POD-NAME> -- df /data
预期输出:
Filesystem 1K-blocks Used Available Use% Mounted on /dev/vdb 20511312 45080 20449848 1% /data
执行以下命令获取PVC信息。
kubectl get pvc
预期输出:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE <your-PVC-name> Bound d-wz9hpoifm43yn9zi**** 20Gi RWO alicloud-disk-topology-alltype 57s
执行以下命令获取PV信息。
kubectl get pv
预期输出:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE d-wz9hpoifm43yn9zi**** 20Gi RWO Delete Bound default/<your-PVC-name> alicloud-disk-topology-alltype 65s
在符合使用说明的各个条件下,执行以下命令进行存储卷扩容。
kubectl patch pvc <your-PVC-name> -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}'
等待一定时间(一分钟以内)后扩容完成,检查状态如下。
执行以下命令查看PV信息。
kubectl get pv d-wz9hpoifm43yn9zi****
预期输出:
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE d-wz9hpoifm43yn9zi**** 30Gi RWO Delete Bound default/<your-PVC-name> alicloud-disk-topology-alltype 5m23s
执行以下命令查看PVC信息。
kubectl get pvc
预期输出:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE <your-PVC-name> Bound d-wz9hpoifm43yn9zi**** 30Gi RWO alicloud-disk-topology-alltype 5m10s
执行以下命令查看Pod的挂载详情。
kubectl exec <YOUR-POD-NAME> -- df /data
预期输出:
Filesystem 1K-blocks Used Available Use% Mounted on /dev/vdb 30832548 45036 30771128 1% /data
您只需要执行一条命令即可完成所有的扩容操作。
相关文档
如需在存储卷的使用率高于某个阈值时自动扩容存储卷,请参见自动扩容云盘存储卷(公测)。