Обновлена документация под новые аддоны (gitlab, redis, mongodb, kafka, kafka-ui, rabbitmq) и новую модель явного выбора зависимостей. Добавлены и унифицированы описания переключателей *_database_mode и *_redis_mode, обновлена таблица зависимостей аддонов, примеры конфигурации и список vault-секретов.
201 lines
5.0 KiB
Markdown
201 lines
5.0 KiB
Markdown
# Хранилище
|
||
|
||
Доступные варианты storage: NFS, Longhorn, MinIO, CSI S3, Rook-Ceph, GlusterFS.
|
||
|
||
## NFS (по умолчанию)
|
||
|
||
NFS сервер на master01 + CSI Driver для динамических PVC. StorageClass `nfs-master01` (default).
|
||
|
||
```yaml
|
||
addon_nfs_server: true # если NFS не установлен основным плейбуком
|
||
addon_csi_nfs: true
|
||
```
|
||
|
||
```yaml
|
||
# 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/nfs-server/README.md), [addons/csi-nfs/README.md](../addons/csi-nfs/README.md).
|
||
|
||
---
|
||
|
||
## Longhorn — distributed block storage
|
||
|
||
Реплицированное блочное хранилище. Хранит данные на дисках нод. Снимки, live migration.
|
||
|
||
```yaml
|
||
addon_longhorn: true
|
||
longhorn_default_replica_count: 2
|
||
```
|
||
|
||
```yaml
|
||
apiVersion: v1
|
||
kind: PersistentVolumeClaim
|
||
metadata:
|
||
name: db-data
|
||
spec:
|
||
accessModes: [ReadWriteOnce]
|
||
storageClassName: longhorn
|
||
resources:
|
||
requests:
|
||
storage: 20Gi
|
||
```
|
||
|
||
Подробнее: [addons/longhorn/README.md](../addons/longhorn/README.md).
|
||
|
||
---
|
||
|
||
## MinIO — объектное хранилище S3
|
||
|
||
S3-совместимый сервер для хранения объектов. Используется как backend для Loki, Velero, CSI S3, Databasus.
|
||
|
||
```yaml
|
||
addon_minio: true
|
||
minio_mode: "standalone" # или distributed (требует 4+ нод)
|
||
minio_storage_size: "50Gi"
|
||
```
|
||
|
||
Endpoint: `http://minio.minio.svc.cluster.local:9000`
|
||
|
||
Подробнее: [addons/minio/README.md](../addons/minio/README.md).
|
||
|
||
---
|
||
|
||
## CSI S3 Driver — S3 как PVC
|
||
|
||
Монтирует S3/MinIO бакеты как PersistentVolume. Автоматически подключается к MinIO при `addon_minio: true`.
|
||
|
||
```yaml
|
||
addon_csi_s3: true
|
||
addon_minio: true
|
||
```
|
||
|
||
```yaml
|
||
apiVersion: v1
|
||
kind: PersistentVolumeClaim
|
||
metadata:
|
||
name: s3-storage
|
||
spec:
|
||
accessModes: [ReadWriteMany]
|
||
storageClassName: csi-s3
|
||
resources:
|
||
requests:
|
||
storage: 100Gi
|
||
```
|
||
|
||
Подробнее: [addons/csi-s3/README.md](../addons/csi-s3/README.md).
|
||
|
||
---
|
||
|
||
## Rook-Ceph — distributed storage
|
||
|
||
Block (RWO) + Filesystem (RWX) storage через Ceph. Требует минимум 3 ноды с незанятыми дисками.
|
||
|
||
```yaml
|
||
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/ceph-rock/README.md), [addons/csi-ceph/README.md](../addons/csi-ceph/README.md).
|
||
|
||
---
|
||
|
||
## CSI GlusterFS
|
||
|
||
Внешний GlusterFS кластер + Heketi как PVC в кластере.
|
||
|
||
```yaml
|
||
addon_csi_glusterfs: true
|
||
csi_glusterfs_heketi_url: "http://192.168.1.20:8080"
|
||
```
|
||
|
||
Подробнее: [addons/csi-glusterfs/README.md](../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
|
||
|
||
```yaml
|
||
addon_velero: true
|
||
velero_schedule_cron: "0 2 * * *"
|
||
```
|
||
|
||
```bash
|
||
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)
|
||
|
||
```yaml
|
||
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
|
||
```
|