跳到主要内容

存储类

Glusterfs

安装kadalu

curl -fsSL https://github.com/kadalu/kadalu/releases/latest/download/install.sh | sudo bash -x
kubectl-kadalu version
kubectl kadalu install --type=kubernetes

创建storage

  • 本机模式

    --device 使用本地设备

    --path 使用本地路径

    1. Replica1

      在这种模式下,Gluster启动时没有高可用性,即没有复制模块。它将只使用一个存储,RWX和RWO PV将从其中分割出来。

      kubectl kadalu storage-add storage-pool1 --type=Replica1 \
      --device kube-nodename1:/dev/vdc
    2. Replica2

      在这种模式下,Gluster将以高可用性启动,使用 "tie-breaker"(或gluster术语中的thin-arbiter)选项。它将使用2个存储选项,其中RWX和RWO PV将被分割出来

      kubectl kadalu storage-add storage-pool1 --type=Replica2 \
      --device kube-nodename1:/dev/vdc \
      --device kube-nodename2:/dev/vdc
    3. Replica3

      在这种模式下,Gluster将以高可用性启动,即复制模块。它需要提供3个存储选项,每个存储将是一个作为pod运行的gluster服务器进程pod。

      kubectl kadalu storage-add storage-pool1 --type=Replica3 \
      --device kube-nodename1:/dev/vdc \
      --device kube-nodename2:/dev/vdc \
      --device kube-nodename3:/dev/vdc
    4. Disperse

      分散卷是基于擦除代码的。它将文件的编码数据,加上一些冗余,在卷中的多个砖块上剥离。你可以使用分散卷,以最小的空间浪费获得可配置的可靠性水平。这种模式至少需要3个存储空间,并根据需要增加存储空间的数量。

      kubectl kadalu storage-add storage-pool1 --type=Disperse \
      --data 2 --redundancy 1 \
      --device kube-nodename1:/dev/vdc \
      --device kube-nodename2:/dev/vdc \
      --device kube-nodename3:/dev/vdc
  • 外部模式(使用外部glusterfs)

    kubectl kadalu storage-add storage-pool-1 --external 172.16.7.14:/gv1

删除kadalu

curl -s https://raw.githubusercontent.com/kadalu/kadalu/devel/extras/scripts/cleanup | bash

链接:https://github.com/kadalu/kadalu

Openebs

与原生 Kubernetes 主机路径卷相比, OpenEBS 本地 PV 主机路径卷具有以下优势。

  • OpenEBS Local PV Hostpath 允许您的应用程序通过 StorageClass、PVC 和 PV 访问 hostpath。这为您提供了更改 PV 提供程序的灵活性,而无需重新设计您的应用程序 YAML。
  • 使用 Velero 备份和恢复的数据保护。
  • 通过完全屏蔽应用程序 YAML 和 pod 的主机路径来防止主机路径安全漏洞。

安装

kubectl apply -f https://openebs.github.io/charts/openebs-operator.yaml

创建自定义路径StorageClass

openebs默认存储路径在主机/var/openebs/local,手动创建SC

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: local-hostpath
annotations:
openebs.io/cas-type: local
cas.openebs.io/config: |
- name: StorageType
value: hostpath
- name: BasePath
value: /data/openebs-data
provisioner: openebs.io/local
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer

链接:https://openebs.io/docs/user-guides/localpv-hostpath