Fase 1: Fundamentos y Planificación
- Introducción: Construyendo una Nube Privada de Borde con Raspberry Pi y Jetson Nano
Visión general del proyecto, motivación, y presentación de la arquitectura final (10 nodos, Docker Swarm, GlusterFS, Portainer, etc.). - Hardware Necesario y Topología de Red
Lista detallada de componentes (8 Raspberry Pi, 2 Jetson Nano, 3 unidades M.2, switch, etc.), asignación de IPs fijas, nombres de host y direcciones MAC. Incluye tabla de inventario.
Fase 2: Preparación del Sistema Base
- Instalación y Configuración Inicial del Sistema Operativo
Paso a paso para instalar Ubuntu Server 22.04 LTS en cada nodo, configurar hostname, IP estática y el archivo/etc/hostspara resolución de nombres. - Configuración del Almacenamiento Distribuido con GlusterFS
Formateo de las unidades M.2, instalación de GlusterFS en los nodos con almacenamiento, creación de un volumen replicado 3x y montaje del volumen compartido en todos los nodos del clúster. - Instalación de Docker en Todos los Nodos
Comandos para instalar Docker, verificar su funcionamiento y preparar el entorno para Swarm.
Fase 3: Orquestación con Docker Swarm
- Inicialización de Docker Swarm y Unión de Nodos
Creación del clúster desde el nodo manager (webserver), obtención del token y unión de los 9 workers. Verificación condocker node ls. - Etiquetado de Nodos para Programación Inteligente
Asignación de etiquetas según función (almacenamiento, GPU, rol) para controlar dónde se ejecutan los servicios. - Creación de Redes Overlay Compartidas
Definición de las redesproxy_net,monitoring_net,db_network,ghost_internalyagent_netque usarán los stacks.
Fase 4: Gestión Centralizada con Portainer
- Despliegue de Portainer: El Centro de Mando del Clúster
Stack de Portainer con servidor en webserver y agentes en modo global en todos los nodos. Uso de secretos para la contraseña de admin y persistencia en GlusterFS. - Primeros Pasos en Portainer: Configuración Inicial y Exploración
Acceso a la interfaz web, configuración de usuario, verificación de los 10 agentes y visión general del clúster.
Fase 5: Infraestructura Base (Proxy, VPN, Seguridad, Monitorización)
- Stack de Infraestructura: WireGuard para Acceso Remoto Seguro
Despliegue de WireGuard en webserver, generación de configuraciones para peers (admin, móvil), y conexión desde el exterior. - Nginx Proxy Manager: Proxy Inverso y SSL Automatizado
Instalación de NPM con su base de datos PostgreSQL, configuración de dominios y certificados Let's Encrypt para los servicios. - Crowdsec: Protección Colaborativa contra Intrusos
Despliegue de Crowdsec (LAPI en honeypot, agentes globales) y su integración con Nginx Proxy Manager para bloquear IPs maliciosas. - Monitorización Completa: Prometheus, Victoria Metrics y Grafana
Stack de monitorización: Prometheus para recolección, Victoria Metrics como almacenamiento de series temporales, y Grafana para visualización. Incluye exporters globales (node-exporter, cadvisor). - Configuración de Dashboards y Alertas en Grafana
Importación de dashboards predefinidos, creación de alertas básicas y notificaciones.
Fase 6: Aplicaciones y Servicios Específicos
- Stack de Aplicaciones: Ghost CMS con MySQL
Despliegue de Ghost (2 réplicas) y su base de datos MySQL en backend, con almacenamiento persistente en GlusterFS. Configuración del blog. - Base de Datos Principal PostgreSQL en postgres
Servicio PostgreSQL dedicado en el nodo postgres para otras aplicaciones. - Nodo Bitcoin en btcnode
Despliegue de un nodo completo de Bitcoin (usandoruimarinho/bitcoin-core) con almacenamiento en GlusterFS. - Servicios de IA en los Nodos Jetson
Configuración de contenedores con soporte GPU (TensorFlow, PyTorch) en jetsonI y jetsonII, acceso vía Jupyter. - Backups Automáticos con Restic en backup
Servicio programado para realizar copias de seguridad cifradas a un bucket S3, con política de retención.
Fase 7: Operaciones y Mantenimiento
- Guía de Administración Diaria del Clúster
Comandos esenciales para gestionar servicios, escalar, ver logs, y monitorizar el estado desde la línea de comandos y Portainer. - Seguridad y Buenas Prácticas
Configuración de firewall UFW en cada nodo, autenticación 2FA en Portainer y Grafana, revisión de logs de Crowdsec. - Backup y Restauración de Datos
Procedimientos detallados para backup manual/automático de configuraciones y bases de datos, y cómo restaurar en caso de desastre. - Solución de Problemas Comunes
Casos típicos: agente de Portainer caído, fallo de un nodo con M.2, servicio que no arranca, etc., y cómo resolverlos.
Fase 8: Ampliación y Mejoras
- Cómo Añadir Nuevos Nodos al Clúster
Pasos para expandir la capacidad: preparar nuevo nodo, unirlo al swarm, configurar almacenamiento y etiquetas. - Próximos Pasos: GitOps, CI/CD y Automatización
Ideas para llevar el clúster al siguiente nivel: despliegues desde Git, integración con Drone, actualizaciones automáticas con Watchtower. - Conclusión y Reflexiones Finales
Resumen de lo aprendido, beneficios de la arquitectura, y recursos adicionales (enlaces a repositorios, comunidades).
Próximo post: [Post 1: Introducción: Construyendo una Nube Privada de Borde con Raspberry Pi y Jetson Nano] → (enlace)