Saltar al contenido

[ 00 / Infraestructura y plataforma de agentes de IA ]

Plataforma KubeLab y Cockpit de Ingeniería

Argo CD v3.4.1 · 2 applications synced K3s v1.34.4+k3s1

La plataforma híbrida en la nube y bare-metal que opera 24/7 mis agentes de IA autónomos, inferencia edge y flujos GitOps.

[ 01 / La Fábrica de Ingeniería Detrás de Cada Producto ]

KubeLab es la base operativa sobre la que he construido, probado y desplegado cada proyecto, herramienta open-source y producto de mi portfolio (incluyendo Pollex, Hive MCP Server, la API de KubeLab y esta misma web en Astro). Abarca ocho máquinas entre Hetzner Cloud (Alemania), Google Cloud y un homelab bare-metal en EE.UU., con tres clústeres K3s de un nodo cada uno.

Nada de lo que muestro es una demo aislada de tutorial: cada carga de trabajo se compila en local, se valida en staging, se protege con autenticación Zero-Trust y se opera 24/7 mediante pipelines GitOps inmutables y sistemas de contexto multi-agente deterministas.

01 · GitOps Reproducible

100% IaC con Ansible, Terraform y K3s. Argo CD reconcilia el estado en <30s.

02 · Edge AI y Privacidad

Inferencia LLM local en una Jetson Nano. El prompt no sale de casa.

03 · Memoria Determinista

RAG AST en Hive MCP que abastece a los agentes con un ahorro de contexto del 67% al 82%.

[ 02 / Servicios, y quién puede llegar a ellos ]

Tres de estos responden a cualquiera. El resto solo responden desde dentro de la malla WireGuard, tras Authelia: no hay una sola regla de port-forwarding en mi red residencial de Estados Unidos, así que para la mayoría no hay ni dirección que exponer.

14 documentados aquí · 35 corriendo entre los tres clústeres

Gateway Principal

  • KubeLab Platform API

    API en Go de alto rendimiento, rate limiting por token bucket y telemetría de plataforma.

  • Traefik Ingress Proxy

    Enrutador Ingress L7 en cloud y edge con terminación TLS automática Let's Encrypt.

    Solo malla
  • Headscale Mesh VPN

    Plano de control WireGuard autoalojado con MagicDNS y enrutamiento aislado.

    Solo malla
  • Authelia Zero-Trust Auth

    Autenticación de doble factor y proveedor forward-auth para servicios internos.

    Solo malla
  • CoreDNS & Pi-hole Split Gateway

    Demonio Split DNS autoritativo y sinkhole de red que enruta zonas de staging y microservicios.

    Solo malla

IA e Inferencia

  • Pollex Edge AI

    Corrección de texto LLM en edge con Qwen 1.5B local sin telemetría en la nube.

  • Hive MCP Server

    Fragmentador AST determinista y capa de memoria MCP para flujos multi-agente.

  • Ollama Local Engine

    Clúster bare-metal de inferencia LLM local corriendo modelos Mistral y DeepSeek.

    Solo malla

GitOps y Entrega

  • Argo CD GitOps Hub

    Entrega continua GitOps declarativa sincronizando clústeres K3s con detección de drift.

    Solo malla
  • Gitea On-Prem Forge

    Repositorio Git ligero autoalojado y mirror de CI automatizado para código privado.

    Solo malla

Observabilidad

  • Grafana Telemetry

    Visualización centralizada de métricas, dashboards de clúster y gráficas de latencia.

    Solo malla
  • Loki Log Aggregator

    Sistema escalable de agregación de logs indexado por etiquetas de pods de K8s.

    Solo malla
  • Uptime Kuma Probes

    Monitor sintético independiente HTTP/ICMP con registro histórico de SLA a 90 días.

    Solo malla

Almacenamiento y Datos

  • MinIO S3 Object Store

    Almacenamiento de objetos distribuido compatible con S3 para backups y modelos de IA.

    Solo malla

[ 03 / Las máquinas de debajo ]

Nueve máquinas: tres alquiladas a un proveedor cloud, una de ellas apagada, y seis en mi casa. Solo tres ejecutan Kubernetes, y lo hacen como tres clústeres independientes de un nodo en vez de un clúster de tres nodos: un plano de control compartido que puede llevarse por delante toda la flota no es un homelab, es un único punto de fallo con pasos de más.

9 máquinas · 8 encendidas · 3 clústeres K3s independientes

  • Hetzner Cloud VPS operativo

    Ingress de Producción y Core IDP

    k3s · ARM64 · 4 vCPU (Ampere Neoverse-N1) · 7.5 GB · Falkenstein (Germany)

  • Google Cloud Platform Hub operativo

    Plano de Control GitOps Argo CD (ADR-063)

    k3s · x86_64 · 2 vCPU (AMD EPYC 7B12) · 2 GB · Eemshaven (Netherlands)

  • Acemagic Staging Cluster operativo

    Clúster Staging K3s y Cargas Pesadas

    k3s · x86_64 · Intel N95 (4c) · 11.5 GB · Homelab (USA)

  • Acemagic Dev & Agent Node operativo

    Desarrollo remoto y workspaces de agentes

    docker · x86_64 · Intel N95 (4c) · 11.5 GB · Homelab (USA)

  • NVIDIA Jetson Nano operativo

    Nodo de Inferencia GPU Edge AI

    systemd · ARM64 · 4c Cortex-A57 (128 Maxwell CUDA cores, unused) · 3.9 GB LPDDR4 · Edge Hardware (USA)

  • Beelink Forge & CI Runner operativo

    Forge Git, runner de CI y almacén de objetos

    docker · x86_64 · Intel N95 (4c) · 7.5 GB · Homelab (USA)

  • Raspberry Pi 4 Gateway operativo

    Gateway de DNS Split y Pi-hole

    docker · ARM64 · Broadcom BCM2711 (4c) · 7.6 GB · Homelab (USA)

  • Raspberry Pi 3 Monitor operativo

    Telemetría y Uptime Kuma

    docker · ARM64 · Broadcom BCM2837 (4c) · 0.9 GB · Homelab (USA)

  • AWS Standby Hub en reserva

    Standby en frío del hub de Argo CD

    ARM64 · 2 vCPU (Graviton2) · 2 GB · Powered down (was eu-central)

[ 04 / Dónde corre cada cosa ]

Ocho de las nueve máquinas: la novena está apagada, así que aparece en la lista de arriba pero no en el dibujo. Tres ejecutan clústeres K3s de un solo nodo que no comparten plano de control.

Eight machines, three Kubernetes clusters An architecture diagram generated by Archify. gcp1 · Argo CD hub · Always-on cloud · K3s, 1 node gcp1 Argo CD hub K3s, 1 node Hetzner VPS · Traefik · API · Web · Authelia · Always-on cloud · K3s, 1 node Hetzner VPS Traefik · API · Web · Authelia K3s, 1 node RPi3 · Uptime Kuma · Always-on cloud · no K8s RPi3 Uptime Kuma no K8s RPi4 gateway · Pi-hole · CoreDNS · Homelab, on demand · no K8s RPi4 gateway Pi-hole · CoreDNS no K8s ace1 · staging workloads · Homelab, on demand · K3s, 1 node ace1 staging workloads K3s, 1 node ace2 · agent workspaces · Homelab, on demand · no K8s ace2 agent workspaces no K8s Beelink · Gitea · CI · MinIO · Homelab, on demand · no K8s Beelink Gitea · CI · MinIO no K8s Jetson Nano · local inference · Homelab, on demand · no K8s Jetson Nano local inference no K8s reconciles reconciles mesh mesh Always-on cloud Homelab, on demand Legend Backend Database Cloud Message bus
El resolutor, el monitor y la forja se quedan fuera de Kubernetes a propósito: cada uno tiene que seguir funcionando mientras la plataforma está rota. Una malla WireGuard une la flota sin abrir ningún puerto de entrada.

Generado en el build desde src/diagrams/topology.architecture.json

[ 05 / Cómo llega un cambio a producción ]

Un push a master produce una única imagen multiarquitectura. Staging la ejecuta sin intervención; producción ejecuta esos mismos bytes solo cuando se mergea una pull request de release.

One push, one image, two environments An architecture diagram generated by Archify. Push to master · mlorentedev/web · mlorentedev/web — one build per push · Conventional Commits Push to master mlorentedev/web Conventional Commits release.yml · one multi-arch build · mlorentedev/web — one build per push · sha-abc1234 release.yml one multi-arch build sha-abc1234 Docker Hub · kubelab-web · mlorentedev/web — one build per push · one digest Docker Hub kubelab-web one digest repository_dispatch · web-image-published · Architecture component · needs a PAT repository_dispatch web-image-published needs a PAT Staging overlay PR · make promote · Architecture component · merged by hand Staging overlay PR make promote merged by hand staging · ace1 · Reconciled from Git, never pushed to · VPN-only DNS staging ace1 VPN-only DNS Re-tag the digest · X.Y.Z and latest · Architecture component · no rebuild Re-tag the digest X.Y.Z and latest no rebuild Argo CD · reconciles from Git · Reconciled from Git, never pushed to · gcp1 hub Argo CD reconciles from Git gcp1 hub production · Hetzner VPS · Reconciled from Git, never pushed to · Traefik, Cloudflare production Hetzner VPS Traefik, Cloudflare on merge builds once dispatch opens a PR same digest when merged prod overlay syncs syncs mlorentedev/web — one build per push Reconciled from Git, never pushed to Legend Frontend Backend Database Cloud Message bus
La promoción reetiqueta un digest en lugar de reconstruir, así que lo que sirve producción es lo que validó staging. Argo CD reconcilia ambos clústeres desde Git: no se despliega nada contra ellos.

Generado en el build desde src/diagrams/flows.architecture.json

[ 06 / Los agentes y las automatizaciones ]

La parte de la plataforma que se opera sola: agentes que leen los logs y hacen el triaje, los protocolos a los que están sujetos, los flujos de n8n que se disparan sin mí, y dónde acaba la telemetría. Casi nada de esto tiene dirección pública — corre dentro de la malla —, así que lo que hay aquí es el inventario y el límite, no un enlace a un panel.

13 entradas · 5 que puedes abrir desde aquí

Agentes

  • Curator Agent

    Neural Hive · síntesis de memoria y ADR

    Repo privado
  • SRE Triage Agent

    Clasificador reactivo de anomalías sobre LogQL

    Público abrir ↗
  • GitOps Delivery Agent

    Atestación y promoción de releases automatizadas

    Solo malla

Protocolos

  • Spec-Driven Dev

    RFC formales, modelos de amenaza y puertas de archivado

    Repo privado
  • Deterministic Gates

    dotf pr triage-queue y 100 % de mutantes muertos

    Público abrir ↗
  • Zero-Debt Doctrine

    Lecciones en vuelo y ADR registrados en tiempo real

    Público abrir ↗
  • Zero Plaintext Secrets

    Cifrado Age/SOPS e inyección en memoria

    Público abrir ↗

Flujos de trabajo

  • SRE Incident Auto-Triage

    Webhook de Alertmanager → corte de logs → Slack

    Solo malla
  • Secret Expiry & R2 Backup

    Copia proactiva y rotación de credenciales

    Solo malla
  • Spoke Reconciliation

    Corrección de deriva en la topología de spokes K8s

    Solo malla

Telemetría

  • Loki Telemetry API

    Telemetría del clúster y trazas con LogQL

    Solo malla
  • Health & SLO Monitor

    Motor de SLO multi-burn-rate en vivo

    Solo malla
  • Codebase Activity

    Código de la infraestructura L0

    Público abrir ↗

Migrado de mlorentedev/kubelab · 6cd9ab0

[ 07 / Objetivos de Nivel de Servicio (SLOs) y Confiabilidad ]

Objetivo SLA a 90 días: 99.5%

Telemetría sintética a 90 días, cotas de latencia y recuperación automática GitOps monitorizados con Uptime Kuma.

Disponibilidad de Plataforma a 90 Días (Uptime Kuma)
99.9% (90d, Uptime Kuma)

Snapshot tomado en el build desde Uptime Kuma — no es un feed en vivo.

SLO de Disponibilidad
99.9% (90d, Uptime Kuma) Objetivo ≥ 99.5%
Uptime Kuma
Bucle de Sync GitOps
<30s Drift Loop Objetivo < 60s
Argo CD Reconciler
Inferencia edge
not measured Objetivo < 5.0s
Jetson Nano (Qwen 1.5B)

[ 08 / Compruébalo tú mismo ]

Corre en tu navegador, contra la API en vivo.

Todas las cifras de arriba se midieron en la fecha que aparece al pie de esta página. Esta no: tu navegador le pregunta directamente a la API de la plataforma e imprime lo que responde — su propia visión de cada subsistema, y su reloj junto al tuyo.

api.kubelab.live/health listo

    Cifras reconciliadas contra el clúster por última vez el · df583db