Files
K3S/docs/storage.md
Sergey Antropoff 38aaadbfb1 docs: sync addon docs with explicit external/internal service modes
Обновлена документация под новые аддоны (gitlab, redis, mongodb, kafka, kafka-ui, rabbitmq) и новую модель явного выбора зависимостей. Добавлены и унифицированы описания переключателей *_database_mode и *_redis_mode, обновлена таблица зависимостей аддонов, примеры конфигурации и список vault-секретов.
2026-04-29 23:21:04 +03:00

5.0 KiB
Raw Permalink Blame History

Хранилище

Доступные варианты storage: NFS, Longhorn, MinIO, CSI S3, Rook-Ceph, GlusterFS.

NFS (по умолчанию)

NFS сервер на master01 + CSI Driver для динамических PVC. StorageClass nfs-master01 (default).

addon_nfs_server: true   # если NFS не установлен основным плейбуком
addon_csi_nfs: true
# PVC:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-data
spec:
  accessModes: [ReadWriteMany]
  storageClassName: nfs-master01
  resources:
    requests:
      storage: 10Gi

Подробнее: addons/nfs-server/README.md, addons/csi-nfs/README.md.


Longhorn — distributed block storage

Реплицированное блочное хранилище. Хранит данные на дисках нод. Снимки, live migration.

addon_longhorn: true
longhorn_default_replica_count: 2
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: db-data
spec:
  accessModes: [ReadWriteOnce]
  storageClassName: longhorn
  resources:
    requests:
      storage: 20Gi

Подробнее: addons/longhorn/README.md.


MinIO — объектное хранилище S3

S3-совместимый сервер для хранения объектов. Используется как backend для Loki, Velero, CSI S3, Databasus.

addon_minio: true
minio_mode: "standalone"   # или distributed (требует 4+ нод)
minio_storage_size: "50Gi"

Endpoint: http://minio.minio.svc.cluster.local:9000

Подробнее: addons/minio/README.md.


CSI S3 Driver — S3 как PVC

Монтирует S3/MinIO бакеты как PersistentVolume. Автоматически подключается к MinIO при addon_minio: true.

addon_csi_s3: true
addon_minio: true
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: s3-storage
spec:
  accessModes: [ReadWriteMany]
  storageClassName: csi-s3
  resources:
    requests:
      storage: 100Gi

Подробнее: addons/csi-s3/README.md.


Rook-Ceph — distributed storage

Block (RWO) + Filesystem (RWX) storage через Ceph. Требует минимум 3 ноды с незанятыми дисками.

addon_ceph_rock: true
# или legacy-алиас:
addon_csi_ceph: true
rook_ceph_mon_count: 3
rook_ceph_block_replica_count: 3

StorageClasses:

  • rook-ceph-block — ReadWriteOnce (БД)
  • rook-ceph-filesystem — ReadWriteMany (общие файлы)

Подробнее: addons/ceph-rock/README.md, addons/csi-ceph/README.md.


CSI GlusterFS

Внешний GlusterFS кластер + Heketi как PVC в кластере.

addon_csi_glusterfs: true
csi_glusterfs_heketi_url: "http://192.168.1.20:8080"

Подробнее: addons/csi-glusterfs/README.md.


Сравнение вариантов

StorageClass Тип RWO RWX Особенности
nfs-master01 NFS По умолчанию, просто
longhorn Block Реплики, снимки, migration
csi-s3 Object FUSE, S3-совместимый
rook-ceph-block Block Производительность, надёжность
rook-ceph-filesystem FS CephFS, POSIX
glusterfs FS Внешний GlusterFS

Рекомендации по выбору

  • Для большинства приложений — NFS (простота, RWX, работает из коробки)
  • Для баз данных — Longhorn или Rook-Ceph block (RWO, производительность)
  • Для больших файлов / медиа — MinIO + CSI S3
  • Для production-кластера с несколькими нодами — Rook-Ceph
  • Для совместного доступа — NFS, Rook-Ceph filesystem

Резервное копирование PVC

Через Velero

addon_velero: true
velero_schedule_cron: "0 2 * * *"
velero backup create my-backup --include-namespaces my-app
velero restore create --from-backup my-backup

Через Longhorn UI

Longhorn → Volumes → Take Snapshot → Create Backup (→ S3)


Статический PV (без StorageClass)

apiVersion: v1
kind: PersistentVolume
metadata:
  name: static-nfs-pv
spec:
  capacity:
    storage: 50Gi
  accessModes: [ReadWriteMany]
  nfs:
    server: "192.168.1.10"
    path: "/storage/nfs/static"
  persistentVolumeReclaimPolicy: Retain
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: static-pvc
spec:
  accessModes: [ReadWriteMany]
  resources:
    requests:
      storage: 50Gi
  volumeName: static-nfs-pv