Skip to content

Repository files navigation

Orquestador de Contenedores

📋 Tabla de Contenidos

  1. Estructura General
  2. Arquitectura del Sistema
  3. Componentes del Sistema
  4. Scripts de Automatización
  5. Guía de Despliegue
  6. Configuración de Servicios

Estructura General

El cluster está conformado por cuatro componentes principales:

  1. API (appsmagob-api) - Servicios web y gestión de autenticación
  2. APP (appsmagob-ui) - Interfaz de usuario del monorepositorio
  3. DockPanel (server-manager) - Herramientas de gestión de contenedores
  4. Proxy Server - Controlador de ingreso y enrutamiento (Nodo Master)

Arquitectura del Sistema

                            🌐 CLIENTE EXTERNO
                                     │
                                     ▼
       ┌─────────────────────────────────────────────────────────────┐
       │                    🔀 INGRESS CONTROLLER                    │
       │                    (nginx-proxy - :80/443)                  │
       │                                                             │
       │  ┌─────────────────┐  ┌─────────────────┐  ┌─────────────┐  │
       │  │      /api/*     │  │        /        │  │ /server-*   │  │
       │  │   ┌─────────┐   │  │   ┌─────────┐   │  │ ┌─────────┐ │  │
       │  │   │  Route  │   │  │   │  Route  │   │  │ │  Route  │ │  │
       │  │   └─────────┘   │  │   └─────────┘   │  │ └─────────┘ │  │
       │  └─────────────────┘  └─────────────────┘  └─────────────┘  │
       └─────────────────────────────────────────────────────────────┘
                  │                      │                      │
                  ▼                      ▼                      ▼
    ┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
    │ 🐳 DOCKER NETWORK   │ │ 🐳 DOCKER NETWORK   │ │ 📁 FILE SYSTEM      │
    │ (appsmagob-net)     │ │ (appsmagob-net)     │ │                     │
    │                     │ │                     │ │                     │
    │ ┌─────────────────┐ │ │ ┌─────────────────┐ │ │ ┌─────────────────┐ │
    │ │ 🐳 API          │ │ │ │ 🐳 APP          │ │ │ │ ☸️ SERVER       │ │
    │ │ (appsmagob-api) │ │ │ │ (appsmagob-ui)  │ │ │ │ MANAGER         │ │
    │ │                 │ │ │ │                 │ │ │ │ (DockPanel)     │ │
    │ │ • Node.js + PM2 │ │ │ │ • React SPA     │ │ │ │                 │ │
    │ │ • Puerto: 4101  │ │ │ │ • Nginx Server  │ │ │ │ • Node.js App   │ │
    │ │ • JWT + Auth    │ │ │ │ • Puerto: 80    │ │ │ │ • Puerto: 5000  │ │
    │ │                 │ │ │ │                 │ │ │ │ • Docker API    │ │
    │ └─────────────────┘ │ │ └─────────────────┘ │ │ │ • Webhooks      │ │
    └─────────────────────┘ └─────────────────────┘ │ │ • Gestión       │ │
                                                    │ │   Contenedores  │ │
                                                    │ └─────────────────┘ │
                                                    └─────────────────────┘
    ┌─────────────────────────────────────────────────────────────────────┐
    │                         🖥️ HOST FÍSICO                              │
    │                                                                     │
    │  • Sistema Operativo Linux                                          │
    │  • Docker Engine                                                    │
    │  • Red appsmagob-net                                                │
    │  • Volúmenes persistentes                                           │
    │  • Archivos de configuración                                        │
    └─────────────────────────────────────────────────────────────────────┘

    🔄 FLUJO DE DATOS:

    Cliente → Ingress Controller → Enrutamiento por Path:

    • /api/*          → 🐳 API Container        (Backend Services)
    • /               → 🐳 APP Container        (Frontend SPA)
    • /dockpanel      → 📁 Dockpanel            (Gestión Docker)

Componentes del Sistema

API (appsmagob-api)

Ubicación: appsmagob-api/

Maneja la conexión a servicios web con payload encriptado y gestión de tokens de autenticación.

Configuración incluye:

  • Variables de entorno: .env.api-appsmagob
  • Claves y certificados: directorio keys/

APP (appsmagob-ui)

Ubicación: appsmagob-ui/

Interfaz de usuario del monorepositorio con configuraciones de servidor web.

Configuraciones de Nginx:

  • nginx.conf - Configuración principal
  • nginx-maintenance.conf - Configuración para mantenimiento

Proxy Server

Ubicación: proxy-server/

Contiene configuraciones de despliegue específicas por entorno:

Entorno de Desarrollo

  • conf.d: Configuración de Nginx
  • init.sh: Script de inicio del servicio

Entorno Huawei (Producción)

  • conf.d: Configuración de Nginx
  • html: Assets estáticos para producción
  • scripts:
    • init.sh - Inicia el servicio
    • make_ssl_webroot.sh - Genera certificado SSL con webroot
    • renew_ssl_webroot.sh - Renueva certificado SSL
    • make_ssl_wildcard.sh - Genera certificado SSL wildcard

Server Manager (server-manager)

Herramientas y configuraciones para la gestión completa de contenedores del cluster.

Scripts de Automatización

Ubicación: scripts/

Ejecutables mediante pnpm run <script>:

scripts/
├── setup.sh
├── setup_api_appsmagob.sh
├── setup_appsmagob.sh
├── setup_send_files.sh
├── make_ssl.sh
├── renew_ssl.sh
├── start_proxy_server.sh
└── start_appsmagob.sh

Guía de Despliegue

1. Configuración Inicial

Crear la estructura de directorios necesaria:

pnpm run setup

2. Envío de Archivos de Configuración

Para desarrollo:

pnpm run setup:send-files

Para producción:

pnpm run setup:send-files -prod

3. Verificación de Configuración

Corroborar que los archivos de configuración correspondan al servidor de destino.

4. Build del Server Manager

pnpm run build
pnpm run start:service

5. Despliegue Inicial (Solo Primera Vez)

a) Preparar Imágenes

  • Enviar imágenes de API y APP al servidor en formato tar.gz

b) Configurar SSL (Solo Producción)

Para SSL con webroot:

pnpm run make_ssl webroot

Para SSL wildcard:

pnpm run make_ssl

c) Iniciar Proxy Server

Desarrollo:

pnpm run proxy-server

Producción:

pnpm run proxy-server -prod

d) Cargar y Arrancar Contenedores

pnpm run start:appsmagob

Configuración de Servicios

Servicio Puerto URL Descripción
Proxy Server 80/443 - Punto de entrada principal
App - http://[domain]/ Interfaz de usuario
API 4101 http://[domain]/api/ Servicios web y API REST
Server Manager 5000 http://[domain]/server-manager/ Panel de gestión de contenedores

Nota: Este documento describe la arquitectura y proceso de despliegue del orquestador de contenedores. Asegúrate de tener los permisos necesarios y las dependencias instaladas antes de ejecutar los scripts de despliegue.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages