docs: полная документация проекта — docs/ и README.md для каждого аддона
- README.md: перепиcан как компактный обзор (98 строк) с навигацией по docs/ - docs/: 13 файлов — getting-started, architecture, configuration, addons, storage, security, cicd, observability, networking, operations, make-reference, molecule-testing, troubleshooting - addons/*/README.md: 31 новый файл — описание, параметры, примеры кода для каждого из 34 аддонов (vault и external-secrets уже существовали)
This commit is contained in:
198
docs/storage.md
Normal file
198
docs/storage.md
Normal file
@@ -0,0 +1,198 @@
|
||||
# Хранилище
|
||||
|
||||
Доступные варианты 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_csi_ceph: true
|
||||
rook_ceph_mon_count: 3
|
||||
rook_ceph_block_replica_count: 3
|
||||
```
|
||||
|
||||
StorageClasses:
|
||||
- `rook-ceph-block` — ReadWriteOnce (БД)
|
||||
- `rook-ceph-filesystem` — ReadWriteMany (общие файлы)
|
||||
|
||||
Подробнее: [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
|
||||
```
|
||||
Reference in New Issue
Block a user