• 创建 Local Volume
  • 删除 Local Volume PV 和文件夹

    Local Volume 表示挂载的本地存储设备,如磁盘、分区或目录,而 Local Volume 只能用作静态创建的 PersistentVolume,与 HostPath 卷相比,Local Volume 可以以持久的方式使用,而无需手动将 pod 调度到节点上,因为系统会通过查看 PersistentVolume 上的节点关联性来了解卷的节点约束。

    创建 Local Volume

    Local Volume 仅用于 all-in-one 单节点部署,也是单节点部署的默认存储类型,Installer 会预先创建 10 个可用的 10G PV 供使用,若存储空间不足时则需要参考如下步骤手动创建。

    1、若 Local Volume 还不是默认的存储类型,可参考创建 Local Volume 的存储类型详细步骤如下:

    • 1.1. 通过 sc.yaml 文件定义 Local Volume 的存储类型:
    1. apiVersion: storage.k8s.io/v1
    2. kind: StorageClass
    3. metadata:
    4. name: local
    5. provisioner: kubernetes.io/no-provisioner
    6. volumeBindingMode: WaitForFirstConsumer
    • 1.2. 执行创建命令:
    1. $ kubectl create -f sc.yaml

    2、创建 Local Volume 文件夹:

    • 登录宿主机,创建文件夹,以文件夹 vol-test 为例,执行以下命令:
    1. sudo mkdir -p /mnt/disks/vol-test

    3、创建 Local PV:

    • 3.1. 通过 pv.yaml 文件定义 Loval PV:
    1. apiVersion: v1
    2. kind: PersistentVolume
    3. metadata:
    4. name: pv-local
    5. spec:
    6. capacity:
    7. storage: 10Gi
    8. # volumeMode field requires BlockVolume Alpha feature gate to be enabled.
    9. volumeMode: Filesystem
    10. accessModes:
    11. - ReadWriteOnce
    12. persistentVolumeReclaimPolicy: Delete
    13. storageClassName: local
    14. local:
    15. path: /mnt/disks/vol-test
    16. nodeAffinity:
    17. required:
    18. nodeSelectorTerms:
    19. - matchExpressions:
    20. - key: node-role.kubernetes.io/master
    21. operator: Exists
    • 3.2. 执行创建命令:
    1. $ kubectl create -f pv.yaml

    4、执行以下命令验证创建结果:

    1. $ kubectl get pv
    2. NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
    3. pv-local 10Gi RWO Delete Available local 4s

    上述工作完成后可在 KubeSphere 控制台创建存储卷,KubeSphere 控制台创建的存储卷容量不可大于预分配 PV 容量。

    注:Local Volume 存储卷创建成功后为 Pending 属于正常状态,当创建工作负载调度 Pod 后存储卷状态即可变化为 Bound。

    删除 Local Volume PV 和文件夹

    若需要 删除 Local Volume,则手动创建的 PersistentVolume 也需要手动清理和删除。

    1. 删除 Local Volume PV:
    1. $ kubectl delete pv pv-local
    1. 删除 Local Volume 文件夹,此操作也会删除 vol-test 文件夹里内容:
    1. $ sudo cd /mnt/disks
    2. $ sudo rm -rf vol-test