Longhorn Kubernetes es la solución de almacenamiento distribuido que convierte los discos de tus nodos en volúmenes persistentes fiables, replicados y con copias de seguridad automáticas. Este proyecto de la CNCF, creado por SUSE, aporta almacenamiento de bloque nativo para tu clúster sin depender de un proveedor cloud ni de hardware especializado. En esta guía lo instalarás con Helm, crearás volúmenes persistentes y configurarás snapshots y backups.
En este artículo aprenderás a:
- Entender qué aporta Longhorn Kubernetes como almacenamiento distribuido.
- Instalar Longhorn con Helm y su interfaz web.
- Crear volúmenes persistentes replicados con su StorageClass.
- Configurar snapshots y copias de seguridad externas.
¿Qué es Longhorn Kubernetes y para qué sirve?
Longhorn Kubernetes es un sistema de almacenamiento de bloque distribuido y ligero, diseñado específicamente para clústeres de Kubernetes. Su misión es resolver uno de los grandes retos de las cargas con estado: proporcionar volúmenes persistentes que sobrevivan a la caída de un nodo, con réplicas automáticas repartidas por el clúster. Todo ello con una interfaz gráfica sencilla y sin la complejidad de soluciones como Ceph.
Adoptar Longhorn en tu clúster aporta ventajas muy concretas para las aplicaciones con estado:
- Alta disponibilidad: cada volumen se replica en varios nodos, de modo que un fallo de hardware no provoca pérdida de datos.
- Snapshots y backups: capturas puntuales del volumen y copias externas a S3 o NFS.
- Interfaz web: un panel para ver el estado de volúmenes, réplicas y nodos de un vistazo.
- Sin dependencias cloud: funciona en tu propio hardware, en un homelab o en cualquier proveedor.
Longhorn Kubernetes complementa muy bien a otras piezas de almacenamiento. Si necesitas almacenamiento de objetos compatible con S3, lo combinas con lo que vimos en MinIO en Kubernetes, mientras Longhorn se ocupa del bloque persistente de tus bases de datos y aplicaciones.
Arquitectura de Longhorn Kubernetes
Entender la arquitectura de Longhorn Kubernetes te ayuda a dimensionar el clúster y a interpretar su estado. El sistema sigue un diseño de microservicios donde cada volumen tiene su propio controlador dedicado.
- Manager: el componente que se ejecuta en cada nodo y orquesta volúmenes, réplicas y operaciones.
- Engine: un controlador ligero por volumen que gestiona la lectura y escritura hacia sus réplicas.
- Réplicas: copias del volumen almacenadas en los discos de distintos nodos para garantizar la redundancia.
- Interfaz de usuario: el panel web desde el que supervisas y administras todo el almacenamiento.
Cuando una aplicación escribe en un volumen, el engine replica esa escritura de forma síncrona en todas las réplicas configuradas. Así, si un nodo se cae, Longhorn Kubernetes promociona otra réplica sin que la aplicación pierda datos. Este diseño distribuido es lo que aporta la resiliencia, y también la razón por la que conviene tener varios nodos con disco disponible.
Requisitos previos
Para desplegar Longhorn Kubernetes necesitas un entorno que cumpla unos requisitos concretos, sobre todo en los nodos, ya que Longhorn usa iSCSI para exponer los volúmenes.
- Un clúster de Kubernetes 1.25 o superior con varios nodos (idealmente tres o más).
- open-iscsi instalado y en ejecución en cada nodo del clúster.
- Espacio de disco disponible en los nodos para las réplicas.
- kubectl y Helm 3 configurados con acceso de administrador.
El requisito de open-iscsi es el que más problemas suele dar. En sistemas basados en Debian o Ubuntu, se instala con un solo comando en cada nodo. Comprueba también que el servicio esté activo antes de continuar.
sudo apt-get install -y open-iscsi
sudo systemctl enable --now iscsid
Con los nodos preparados, ya podemos desplegar el sistema de almacenamiento en el clúster.
Instalar Longhorn Kubernetes con Helm
El método recomendado para desplegar Longhorn Kubernetes es su chart oficial de Helm. Primero añadimos el repositorio y actualizamos el índice de charts.
helm repo add longhorn https://charts.longhorn.io
helm repo update
Con el repositorio disponible, instalamos Longhorn en su propio espacio de nombres longhorn-system. El operador desplegará todos sus componentes en cada nodo automáticamente.
helm install longhorn longhorn/longhorn \
--namespace longhorn-system \
--create-namespace \
--version 1.7.2
La instalación tarda unos minutos, ya que despliega varios pods en cada nodo. Verifica que todo arranca correctamente comprobando los pods y la StorageClass que Longhorn crea automáticamente.
kubectl get pods -n longhorn-system
kubectl get storageclass
Cuando todos los pods estén en Running y veas la StorageClass longhorn, tu sistema de almacenamiento ya está operativo. Para acceder al panel web, expón el servicio de la interfaz mediante un port-forward temporal.
kubectl -n longhorn-system port-forward svc/longhorn-frontend 8080:80
Abre http://localhost:8080 y verás el panel de Longhorn Kubernetes con el estado de tus nodos y volúmenes. Desde ahí gestionas todo el almacenamiento de forma visual.
⚠️ Advertencia
El panel de Longhorn no incluye autenticación por defecto. No lo expongas a Internet sin protegerlo tras un proxy inverso con autenticación. Además, planifica siempre al menos tres réplicas en producción para tolerar la caída de un nodo sin perder datos.
Crear volúmenes persistentes con Longhorn Kubernetes
Con Longhorn Kubernetes instalado, crear almacenamiento persistente para una aplicación es tan sencillo como declarar un PersistentVolumeClaim que use la StorageClass longhorn. Longhorn se encarga del resto: aprovisiona el volumen y crea las réplicas.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: datos-app
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 10Gi
Aplica este manifiesto y Longhorn creará un volumen de 10 GB replicado automáticamente. Cualquier pod que monte este PVC dispondrá de almacenamiento persistente que sobrevive a reinicios y reprogramaciones. Comprueba el estado del volumen recién creado.
kubectl get pvc datos-app
kubectl get volumes.longhorn.io -n longhorn-system
Verás el PVC en estado Bound y el volumen correspondiente gestionado por Longhorn. A partir de aquí, tus bases de datos y aplicaciones con estado disponen de un almacenamiento fiable y replicado sin que tengas que preocuparte por el disco físico subyacente.
Snapshots y backups en Longhorn Kubernetes
Una de las funciones más valiosas de Longhorn Kubernetes es su gestión de snapshots y copias de seguridad. Un snapshot es una captura puntual del volumen dentro del clúster, ideal para revertir cambios rápidos. Un backup va más allá: copia esos datos a un destino externo como un bucket S3 o un recurso NFS.
La diferencia es crucial para tu estrategia de recuperación ante desastres: un snapshot te protege de un error lógico, pero un backup externo te protege incluso de la pérdida total del clúster. Para configurar los backups, en el panel de Longhorn defines un backup target apuntando a tu almacenamiento externo, y a partir de ahí programas copias recurrentes por volumen.
Esta estrategia se complementa a la perfección con herramientas de backup a nivel de clúster. Mientras Longhorn protege el dato en el volumen, puedes respaldar los objetos de Kubernetes con la solución que vimos en Velero para backups en Kubernetes, cubriendo así tanto la configuración como los datos.
Casos de uso reales de Longhorn Kubernetes
Para apreciar el valor de esta solución conviene aterrizarla en escenarios concretos. El almacenamiento persistente es la pieza que falta en muchos clústeres autohospedados, y Longhorn Kubernetes la resuelve con elegancia en situaciones como estas:
- Bases de datos con estado: ejecutar PostgreSQL o MySQL en el clúster con la garantía de que sus datos sobreviven a la caída de un nodo.
- Aplicaciones autohospedadas: dar almacenamiento fiable a gestores de fotos, wikis o herramientas que necesitan guardar ficheros.
- Homelabs y bare metal: conseguir almacenamiento replicado en máquinas propias, sin discos de red caros ni servicios cloud.
- Entornos de desarrollo: reproducir en local un almacenamiento parecido al de producción, con snapshots para volver atrás al instante.
En todos estos casos, la alternativa tradicional era recurrir a discos de red gestionados por el proveedor cloud, con su coste y su dependencia. Longhorn Kubernetes democratiza ese almacenamiento distribuido y lo pone al alcance de cualquiera con varios nodos y algo de disco, lo que ha impulsado enormemente su adopción en la comunidad de self-hosting.
Cuándo elegir Longhorn Kubernetes
No todo el almacenamiento es igual, y conviene saber cuándo Longhorn Kubernetes es la mejor opción. Su punto fuerte es el almacenamiento de bloque para cargas con estado que necesitan un volumen dedicado y de baja latencia, como una base de datos. Frente a soluciones más complejas como Ceph, Longhorn prioriza la sencillez de operación y una curva de aprendizaje suave.
Sin embargo, no sustituye al almacenamiento de objetos: si tu aplicación necesita guardar millones de ficheros accesibles por HTTP, una solución tipo S3 encaja mejor para ese caso concreto. Lo habitual en un clúster maduro es combinar ambos: Longhorn Kubernetes para los volúmenes de bloque de tus aplicaciones con estado, y almacenamiento de objetos para los datos no estructurados. Esta separación de responsabilidades te da lo mejor de cada mundo y evita forzar una herramienta para un trabajo que no le corresponde. Evaluar bien esta decisión desde el principio te ahorrará migraciones dolorosas más adelante.
Buenas prácticas y solución de problemas
- Tres réplicas mínimo: en producción, configura al menos tres réplicas por volumen para tolerar fallos.
- Nodos dedicados a almacenamiento: si es posible, reserva nodos con disco rápido para las réplicas.
- Backups externos: no confíes solo en snapshots; configura siempre un backup target fuera del clúster.
- Vigila el espacio: monitoriza el disco de los nodos, ya que las réplicas consumen espacio real multiplicado.
Si un volumen aparece en estado Degraded, suele significar que una réplica falló o que un nodo no tiene espacio; Longhorn intentará reconstruirla automáticamente en otro nodo. Para integrar métricas y alertas, aprovecha la base de Prometheus en Kubernetes, ya que Longhorn expone métricas listas para consumir. Encontrarás más guías en nuestra categoría de tutoriales de Kubernetes.
Conclusión
Con Longhorn Kubernetes has dotado a tu clúster de un almacenamiento persistente, distribuido y con copias de seguridad, sin depender de un proveedor cloud ni de hardware especializado. Hemos cubierto la arquitectura, la instalación con Helm, la creación de volúmenes replicados y la estrategia de snapshots y backups. A partir de aquí, ajusta el número de réplicas, configura un destino de backup externo y lleva tus cargas con estado a producción con tranquilidad.
Como recorrido recomendado, empieza probando el almacenamiento con una aplicación de importancia baja, crea manualmente un snapshot y practica su restauración para familiarizarte con el flujo. Después, configura un backup target externo y verifica que puedes recuperar un volumen completo desde cero: esa prueba de restauración es la que de verdad te da confianza, porque un backup que nunca se ha restaurado no es un backup fiable. Solo cuando domines ese ciclo completo de snapshot, copia y recuperación deberías confiarle tus bases de datos de producción. Con esa disciplina, tu almacenamiento distribuido se convertirá en una base sólida sobre la que crecer sin sobresaltos.
Preguntas frecuentes sobre Longhorn Kubernetes
¿Cuántos nodos necesito para Longhorn?
Funciona con un solo nodo para pruebas, pero para aprovechar la replicación y la alta disponibilidad necesitas al menos tres nodos, de modo que cada volumen tenga tres réplicas en máquinas distintas.
¿Longhorn es gratis?
Sí, es un proyecto de código abierto de la CNCF, gratuito y mantenido por SUSE. No tiene coste de licencia; solo asumes el hardware o los nodos donde se ejecuta.
¿En qué se diferencia de Ceph o Rook?
Longhorn es más ligero y sencillo de operar, con una interfaz clara, mientras que Ceph ofrece más funciones a cambio de mayor complejidad. Para la mayoría de clústeres pequeños y medianos, Longhorn es más que suficiente.
¿Puedo hacer backups a S3?
Sí. Longhorn permite definir un backup target compatible con S3 o NFS y programar copias recurrentes de cada volumen, lo que te da una capa de recuperación ante desastres fuera del clúster.
Recursos y documentación oficial
- Sitio oficial de Longhorn
- Documentación oficial de Longhorn
- Longhorn en GitHub
- Longhorn en la CNCF
- Volúmenes persistentes en Kubernetes
