Advanced v2.0

Advanced v2.0
Advanced v1.0
Express v1.0
  1. Release Notes
  1. 产品介绍
  1. 安装指南
  1. 快速入门
  1. 管理员指南
    1. 多租户管理
    1. 平台管理
    1. 基础设施
    1. 监控中心
    1. 平台设置
    1. 工具箱
    1. 通用配置
    1. FAQ
  1. 用户指南
    1. 应用
    1. 工作负载
    1. 存储
    1. 网络与服务
    1. 监控告警
    1. 配置中心
    1. 项目设置
    1. DevOps 工程
  1. 常见问题
  1. 附录
KubeSphere®️ 2019 All Rights Reserved.

Local Volume 使用方法

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 的存储类型:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: local
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
  • 1.2. 执行创建命令:
$ kubectl create -f sc.yaml

2、创建 Local Volume 文件夹:

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

3、创建 Local PV:

  • 3.1. 通过 pv.yaml 文件定义 Loval PV:
apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv-local
spec:
  capacity:
    storage: 10Gi 
  # volumeMode field requires BlockVolume Alpha feature gate to be enabled.
  volumeMode: Filesystem
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Delete
  storageClassName: local
  local:
    path: /mnt/disks/vol-test
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: node-role.kubernetes.io/master
          operator: Exists
  • 3.2. 执行创建命令:
$ kubectl create -f pv.yaml

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

$ kubectl get pv
NAME         CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM        STORAGECLASS    REASON    AGE
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:
$ kubectl delete pv pv-local
  1. 删除 Local Volume 文件夹,此操作也会删除 vol-test 文件夹里内容:
$ sudo cd /mnt/disks
$ sudo rm -rf vol-test
Local Volume 使用方法
创建 Local Volume
删除 Local Volume PV 和文件夹