- 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 уже существовали)
Longhorn
Distributed block storage для Kubernetes. Хранит данные реплицированно на дисках нод кластера. Поддерживает снимки, резервное копирование в S3/NFS, live migration томов.
Быстрый старт
# group_vars/all/addons.yml
addon_longhorn: true
make addon-longhorn
Параметры
| Переменная | Умолч. | Описание |
|---|---|---|
longhorn_default_replica_count |
2 |
Количество реплик по умолчанию |
longhorn_data_path |
/var/lib/longhorn |
Путь данных на нодах |
longhorn_storage_class_default |
false |
Сделать default StorageClass |
longhorn_ingress_enabled |
false |
UI через Ingress |
Использование в PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: db-data
spec:
accessModes: [ReadWriteOnce]
storageClassName: longhorn
resources:
requests:
storage: 10Gi
Настройка реплик для конкретного PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: critical-data
annotations:
longhorn.io/numberOfReplicas: "3"
spec:
accessModes: [ReadWriteOnce]
storageClassName: longhorn
resources:
requests:
storage: 20Gi
UI через Ingress
longhorn_ingress_enabled: true
longhorn_ingress_host: "longhorn.example.com"
longhorn_ingress_tls: true
Резервное копирование в MinIO
В Longhorn UI → Settings → Backup Target:
s3://longhorn-backup@us-east-1/
Secret:
kubectl create secret generic longhorn-backup-secret \
--from-literal=AWS_ACCESS_KEY_ID=minioadmin \
--from-literal=AWS_SECRET_ACCESS_KEY=changeme \
--from-literal=AWS_ENDPOINTS=http://minio.minio.svc.cluster.local:9000 \
-n longhorn-system
Исключить ноду из storage (RPi)
kubectl label node rpi01 node.longhorn.io/create-default-disk=false
Диагностика
kubectl get pods -n longhorn-system
kubectl get pv,pvc -A
# Longhorn API:
kubectl -n longhorn-system port-forward svc/longhorn-frontend 8080:80