Files
K3S/addons/csi-glusterfs

CSI GlusterFS

CSI-драйвер для подключения внешнего GlusterFS кластера к Kubernetes через Heketi REST API. Предоставляет динамическое provisioning PVC на базе GlusterFS.

Требует предварительно настроенного внешнего GlusterFS кластера с Heketi.

Быстрый старт

# group_vars/all/addons.yml
addon_csi_glusterfs: true

csi_glusterfs_heketi_url: "http://192.168.1.20:8080"
csi_glusterfs_cluster_id: ""   # heketi-cli cluster list

Секрет в vault.yml:

vault_glusterfs_heketi_secret: "heketi-admin-password"
make addon-csi-glusterfs

Параметры

Переменная Умолч. Описание
csi_glusterfs_heketi_url http://heketi.glusterfs.local:8080 Heketi API URL
csi_glusterfs_heketi_user admin Пользователь Heketi
csi_glusterfs_cluster_id "" ID кластера Heketi
csi_glusterfs_volume_type replicate:3 Тип тома GlusterFS
csi_glusterfs_storage_class_name glusterfs Имя StorageClass
csi_glusterfs_reclaim_policy Delete Delete | Retain

Типы томов

csi_glusterfs_volume_type: "replicate:3"   # 3 реплики (prod)
csi_glusterfs_volume_type: "none"          # без реплик (dev)
csi_glusterfs_volume_type: "disperse:4:2"  # erasure coding 4+2

Прямые endpoints без Heketi

csi_glusterfs_endpoints:
  - name: "gluster01"
    ip: "192.168.1.10"
  - name: "gluster02"
    ip: "192.168.1.11"
  - name: "gluster03"
    ip: "192.168.1.12"

Использование в PVC

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: gluster-data
spec:
  accessModes: [ReadWriteMany]
  storageClassName: glusterfs
  resources:
    requests:
      storage: 10Gi

Получить Cluster ID из Heketi

heketi-cli --server http://192.168.1.20:8080 \
  --user admin --secret "password" \
  cluster list