最近更新时间:2023-12-05 14:42:48
随着业务快速发展,已有云硬盘容量可能无法满足业务应用数据增长的需要,通过Flexvolume或CSI插件,用户可以在不需重启Pod的情况下,动态的扩大云硬盘(EBS)的容量来满足业务需求。
若您使用的是Flexvolume存储插件,在使用动态扩容功能前,需要先将Flexvolume的镜像更新为1.8.4版本及以上,此处以1.8.4版本为例:hub.kce.ksyun.com/ksyun/ksc-flexvolume:v1.8.4-mp
操作方法:
执行以下命令,编辑flexvolume的daemonset:
kubectl -n kube-system edit ds ksc-flexvolume-ds
更新镜像
...
containers:
- image: hub.kce.ksyun.com/ksyun/ksc-flexvolume:v1.8.4-mp # 此处将镜像版本更新为1.8.4及以上
imagePullPolicy: Always
name: ksc-flexvolume-ds
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /mnt
name: copydest
...
若您使用的是CSI存储插件,在使用动态扩容功能前,需要先将csi-driver组件更新为2.0.5版本及以上,如需更新,请参考更新 Helm应用。
在需要使用的StorageClass yaml中新增allowVolumeExpansion字段。
Flexvolume:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: xxx
provisioner: ksc/ebs
parameters:
···
allowVolumeExpansion: true # 将此字段设置为true,允许用户通过编辑相应的PVC对象来扩容卷大小
CSI:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: xxx
provisioner: com.ksc.csi.diskplugin
parameters:
···
allowVolumeExpansion: true # 将此字段设置为true,允许用户通过编辑相应的PVC对象来扩容卷大小
kubectl edit pvc <pvc-name>
...
spec:
accessModes:
- xxx
resources:
requests:
storage: 40Gi # 将PVC扩容至所需的大小,此处以40Gi为例
storageClassName: xxx
volumeMode: Filesystem
volumeName: xxx
...
云硬盘扩容的容量存在上限,详情参考云硬盘扩容概述中的“云硬盘扩容上限”章节。
kubectl get pvc <pvc-name>
从上图可以看出,CAPACITY列的数据已经变为40Gi,表示磁盘已经扩容成功。
kubectl exec <pod-name> -- lsblk
从上图可以看出,目标挂载路径的磁盘大小已变为40G,表示扩容后的磁盘已成功挂载至Pod。
纯净模式