Что такое Longhorn?
Longhorn — это распределённая блочная система хранения, созданная специально для Kubernetes. Разработана Rancher Labs и обеспечивает высокодоступное хранилище на базе обычных интерфейсов Kubernetes.
Основные особенности
- Нативно для Kubernetes
- Высокая доступность за счёт репликации
- Интерфейс управления (UI/CLI)
- Снапшоты и резервные копии
- Простая установка
Зачем использовать Longhorn?
Kubernetes не управляет хранилищем сам по себе — он использует CSI-драйверы. Longhorn — это лёгкое, открытое и надёжное решение, которое позволяет:
- Автоматически создавать тома
- Делать резервные копии
- Обеспечивать отказоустойчивость
- Легко восстанавливать данные
Установка Longhorn
Требования
- Кластер Kubernetes (версии 1.20+)
- Установлен Helm 3
- Открыты порты
9500
,9501
,3260
на всех узлах
Установка с помощью Helm
helm repo add longhorn https://charts.longhorn.io
helm repo update
kubectl create namespace longhorn-system
helm install longhorn longhorn/longhorn --namespace longhorn-system
Доступ к интерфейсу Longhorn
kubectl port-forward service/longhorn-frontend 8080:80 -n longhorn-system
Откройте http://localhost:8080
Использование в приложениях
- Создание StorageClass (опционально)
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: longhorn
provisioner: driver.longhorn.io
reclaimPolicy: Retain
- Создание PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 2Gi
- Монтирование в Deployment
volumeMounts:
- name: data
mountPath: /data
volumes:
- name: data
persistentVolumeClaim:
claimName: my-pvc
Плюсы и минусы
✅ Плюсы
- Простота в установке и использовании
- UI/CLI/API
- Поддержка бэкапов и снапшотов
- Открытый код
❌ Минусы
- Скорость ниже, чем у локальных дисков
- Поддерживаются не все возможности CSI
- Дополнительные компоненты увеличивают сложность
Заключение
Longhorn — отличное решение для хранения данных в Kubernetes-кластере. Особенно подойдёт DevOps-командам, которым нужно надёжное и простое в управлении блочное хранилище с высокой доступностью.