扩容PVC

当容器使用的PVC容量不足时,需要对该PVC进行扩容操作。

前提条件

操作步骤

  1. 执行命令,查询StorageClass是否支持扩容。其中,mysc 为需要查看的StorageClass名称。

    kubectl get sc mysc
    

    命令结果示例如下:

    NAME              PROVISIONER      RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
    mysc              csi.huawei.com   Delete          Immediate           true                  172m
    

    如果ALLOWVOLUMEEXPANSION的值为true,表示当前StorageClass已经支持扩容,请跳转至步骤3

  2. 执行以下命令,将“allowVolumeExpansion“的值修改为“true“。其中,mysc 为需要修改的StorageClass名称。

    kubectl patch sc mysc --patch '{"allowVolumeExpansion":true}'
    
  3. 执行命令,查询PVC的StorageClass名称。其中,mypvc 为需要扩容的PVC名称。

    kubectl get pvc mypvc
    

    命令结果示例如下:

    NAME               STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS      AGE
    mypvc              Bound    pvc-3383be36-537c-4cb1-8f32-a415fa6ba384   2Gi        RW0            mysc              145m
    
  4. 执行以下命令进行扩容。

    kubectl patch pvc mypvc -p '{"spec":{"resources":{"requests":{"storage":"120Gi"}}}}'
    

    其中,"mypvc“是需要扩容的PVC名称,“120Gi”是扩容后的容量大小。请根据实际情况进行替换。

    • PVC容量的规格取决于存储规格限制和主机规格限制。以OceanStor Dorado 6.1.2/OceanStor Pacific系列 8.1.0对接CentOS 7为例,当使用的是ext4文件系统时,容量限制见表 ext4容量的规格;当使用的是XFS文件系统时,容量限制见表 XFS容量的规格。如果使用的是NFS或者裸设备,容量需满足使用的华为存储设备型号和版本所要求的规格约束。
    • 如果PVC容量不在规格范围内,可能会由于存储规格限制或主机文件系统规格限制导致创建PVC或Pod失败。
    • 如果扩容的目标容量超过存储池容量导致扩容失败,请参考PVC扩容的目标容量超过存储池容量导致扩容失败
  5. 执行命令,检查容量修改是否生效。

    kubectl get pvc
    

    命令结果示例如下,如果CAPACITY字段已变更为指定容量,说明扩容成功。

    NAME        STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    mypvc       Bound    pvc-3383be36-537c-4cb1-8f32-a415fa6ba384   120Gi       RWO            mysc           24s