全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

云硬盘动态扩容

最近更新时间:2023-12-05 14:42:48

随着业务快速发展,已有云硬盘容量可能无法满足业务应用数据增长的需要,通过Flexvolume或CSI插件,用户可以在不需重启Pod的情况下,动态的扩大云硬盘(EBS)的容量来满足业务需求。

前提条件

Flexvolume

若您使用的是Flexvolume存储插件,在使用动态扩容功能前,需要先将Flexvolume的镜像更新为1.8.4版本及以上,此处以1.8.4版本为例:hub.kce.ksyun.com/ksyun/ksc-flexvolume:v1.8.4-mp

操作方法:

  1. 执行以下命令,编辑flexvolume的daemonset:
    kubectl -n kube-system edit ds ksc-flexvolume-ds

  2. 更新镜像

 ...
 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存储插件,在使用动态扩容功能前,需要先将csi-driver组件更新为2.0.5版本及以上,如需更新,请参考更新 Helm应用

使用说明

修改StorageClass

在需要使用的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对象来扩容卷大小

扩容PVC

  1. 执行以下命令,编辑PVC:
    kubectl edit pvc <pvc-name>
  2. 扩大PVC容量
...
spec:
  accessModes:
  - xxx
  resources:
    requests:
      storage: 40Gi  # 将PVC扩容至所需的大小,此处以40Gi为例
  storageClassName: xxx
  volumeMode: Filesystem
  volumeName: xxx
...

云硬盘扩容的容量存在上限,详情参考云硬盘扩容概述中的“云硬盘扩容上限”章节。

验证扩容是否成功

  1. 编辑PVC后,金山云会自动执行云硬盘的扩容操作,此过程大约需要1分钟。在1分钟后,执行以下命令查看扩容结果:
    kubectl get pvc <pvc-name>

image.png
从上图可以看出,CAPACITY列的数据已经变为40Gi,表示磁盘已经扩容成功。

  1. 执行以下命令,查看Pod挂载的块设备:
    kubectl exec <pod-name> -- lsblk

image.png

从上图可以看出,目标挂载路径的磁盘大小已变为40G,表示扩容后的磁盘已成功挂载至Pod。

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈