介绍:
云盘数据卷扩容包括以下几个部分:
云盘物理空间扩容,需要在云盘控制台操作;
文件系统扩容,需要挂载云盘到一个物理节点手动操作;
PV、PVC Size更新,需要更新StorageClass、PVC;
注意:扩容云盘前需要为云盘打快照,以预防升级失败导致数据丢失;
云盘目前无法做到在线扩容,需要重启应用才可以实现,可以通过两种方法实现云盘扩容。下面以集群中部署Zookeeper为例介绍两种扩容方式,Zookeeper集群如下:
# kubectl get pod
NAME READY STATUS RESTARTS AGE
zookeeper-default-zookeeper-0 1/1 Running 0 2m55s
zookeeper-default-zookeeper-1 1/1 Running 0 2m14s
zookeeper-default-zookeeper-2 1/1 Running 0 94s
# kubectl get pvc| grep zoo
datadir-zookeeper-default-zookeeper-0 Bound d-8vb5teafaoa80ia7affg 20Gi RWO alicloud-disk-efficiency 3m12s
datadir-zookeeper-default-zookeeper-1 Bound d-8vb60faf6epslbctnzka 20Gi RWO alicloud-disk-efficiency 2m31s
datadir-zookeeper-default-zookeeper-2 Bound d-8vbidmq57w4df6k84zem 20Gi RWO alicloud-disk-efficiency 111s
# kubectl get pv| grep zoo
d-8vb5teafaoa80ia7affg 20Gi RWO Delete Bound default/datadir-zookeeper-default-zookeeper-0 alicloud-disk-efficiency 3m17s
d-8vb60faf6epslbctnzka 20Gi RWO Delete Bound default/datadir-zookeeper-default-zookeeper-1 alicloud-disk-efficiency 2m33s
d-8vbidmq57w4df6k84zem 20Gi RWO Delete Bound default/datadir-zookeeper-default-zookeeper-2 alicloud-disk-efficiency 107s
暂停应用方式:
如果应用可以暂停服务,可以先停掉应用(删除),手动对每个依赖数据盘进行扩容,然后再启动应用。缺点是:应用会暂停一定时间;
上面应用使用了3个20Gi的云盘,分别挂载在3个pod上。目标为把三个云盘扩容到30Gi,主要步骤:
- 删除应用负载;
- 云盘控制台在线扩容云盘;
- 挂载云盘到某节点进行文件系统扩容;
- 更新PV、PVC的Size参数;
- 重启应用;
1. 删除应用:
删除zookeeper statefulset对象;
# kubectl delete sts zookeeper-default-zookeeper
# kubectl get pvc | grep zoo
datadir-zookeeper-default-zookeeper-0 Bound d-8vb6ie0kwtyynpf4gu4l 20Gi RWO alicloud-disk-efficiency 22m
datadir-zookeeper-default-zookeeper-1 Bound d-8vbhscszlr47rbot0boc 20Gi RWO alicloud-disk-efficiency