Fase 1: Fundamentos y Planificación

  1. 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.).
  2. 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

  1. 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/hosts para resolución de nombres.
  2. 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.
  3. 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

  1. 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 con docker node ls.
  2. 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.
  3. Creación de Redes Overlay Compartidas
    Definición de las redes proxy_netmonitoring_netdb_networkghost_internal y agent_net que usarán los stacks.

Fase 4: Gestión Centralizada con Portainer

  1. 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.
  2. 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)

  1. 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.
  2. 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.
  3. 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.
  4. 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).
  5. 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

  1. 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.
  2. Base de Datos Principal PostgreSQL en postgres
    Servicio PostgreSQL dedicado en el nodo postgres para otras aplicaciones.
  3. Nodo Bitcoin en btcnode
    Despliegue de un nodo completo de Bitcoin (usando ruimarinho/bitcoin-core) con almacenamiento en GlusterFS.
  4. Servicios de IA en los Nodos Jetson
    Configuración de contenedores con soporte GPU (TensorFlow, PyTorch) en jetsonI y jetsonII, acceso vía Jupyter.
  5. 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

  1. 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.
  2. 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.
  3. 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.
  4. 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

  1. Cómo Añadir Nuevos Nodos al Clúster
    Pasos para expandir la capacidad: preparar nuevo nodo, unirlo al swarm, configurar almacenamiento y etiquetas.
  2. 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.
  3. 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)