Saltar a contenido

HomeLab — K3s + Incus + CAPN

En construcción activa

Un laboratorio para aprender y operar infraestructura moderna con equipos que cualquiera puede tener en casa: tres computadores pequeños que se convierten en una «mini nube» con Kubernetes. La documentación explica cada paso, por qué se hace y cómo comprobar que funcionó, y te acompaña con inteligencia artificial (IA) mientras estudias.

¿Qué es esto?

Imagina un edificio pequeño con tres pisos. Cada piso es un computador. Un programa llamado Incus divide cada piso en departamentos (máquinas virtuales y contenedores). Encima trabaja un gerente, Kubernetes (en su versión ligera, K3s), que decide qué aplicación va en qué departamento y reemplaza a la que falle. Todo lo que está instalado está escrito en un plano guardado en Git; otro programa, Argo CD, compara el edificio con el plano y corrige cualquier diferencia. Y cada instalación se hace con listas de tareas automáticas (Ansible), así que se puede repetir igual las veces que quieras.

Clúster K3s híbrido (control plane ARM64, workers x86_64) sobre un clúster Incus de tres miembros (quórum con dqlite, cluster groups por arquitectura). Red de pods con Calico (VXLAN cross-subnet), LoadBalancer con MetalLB en L2 y entrada HTTPS por Gateway API (Kong) con TLS de una CA propia (cert-manager). Almacenamiento con OpenEBS LocalPV y Longhorn. La plataforma se despliega por GitOps: un ApplicationSet de Argo CD activa las apps por olas desde un repositorio privado, con secretos en 1Password y SSO con Dex y GitHub. Ansible hace el bootstrap de los nodos, OpenTofu gestiona los repositorios de GitHub y ARC ejecuta los pipelines en el propio clúster. Cluster API (CAPN) crea clústeres efímeros sobre Incus.

El HomeLab de un vistazo

Pieza En simple Qué hace técnicamente
Nodos Los tres «pisos» del edificio Lenovo M920q, M700 y Orange Pi 5 Plus (x86_64 y ARM64)
Incus El que divide cada piso en departamentos Gestiona contenedores y VM en un clúster de tres miembros
K3s El gerente que reparte el trabajo Kubernetes ligero: control plane en deborah, workers en los otros dos
Calico Los pasillos entre departamentos CNI: da red y direcciones a los pods
MetalLB El número de teléfono fijo del edificio Asigna IP de la LAN a los Services LoadBalancer
Gateway (Kong) La puerta principal con portero Recibe el tráfico HTTPS y lo envía a cada aplicación
cert-manager La oficina que emite los carnets Emite certificados TLS con una CA propia del HomeLab
Longhorn y OpenEBS Bodegas: una rápida y otra con copia de seguridad Almacenamiento local y replicado entre nodos
Argo CD (GitOps) El inspector que compara el edificio con el plano Sincroniza el clúster con lo que declara Git
Dex El mostrador de identificación SSO: inicia sesión con GitHub en ArgoCD, vCluster e Incus
ARC Obreros que construyen y prueban Runners de GitHub Actions dentro del clúster
CAPN Una impresora 3D de clústeres Cluster API para crear clústeres a partir de un manifiesto

Elige tu ruta

¿Por dónde empiezo?
Estoy empezando
Sigue las fases en orden. Cada una trae un bloque «Aprende esta fase» con analogías, un reto práctico y preguntas de repaso.
Ya sé Linux y Kubernetes
Ve directo a las decisiones: el GitOps de la plataforma, la arquitectura y los análisis de trade-offs de cada fase.
Vengo a operar
Procedimientos de rutina: agregar un nodo, rotar credenciales, actualizar K3s y ArgoCD, cambiar el controlador de Gateway.

Aprende con IA, gratis

En cada paso de la guía hay un botón Aprende con IA: prepara una pregunta de tutor con el contexto de esa sección y te lleva a un cuaderno de estudio que responde solo con esta documentación, con cuestionarios y resúmenes en audio. Elige tu nivel, pulsa el botón y pega la pregunta en el chat.

Hardware

Nodo Modelo CPU RAM (medida) IP (br0) Rol
invincible Lenovo M920q i7-8700T x86_64 15.5 GB 192.168.20.6 Incus leader · K3s worker
oliver Lenovo M700 i3-6100T x86_64 7.7 GB 192.168.20.7 Incus quorum · K3s worker
deborah Orange Pi 5 Plus RK3588 ARM64 31 GB 192.168.20.5 K3s control-plane · Incus arm64

Detalle medido y presupuesto RAM: Inventario de hardware.

Hostnames de la serie Invincible — ver personajes.

Empieza por acá

Guía principal — implementación paso a paso:

Contexto y profundización:

Repositorio

El código (Ansible, OpenTofu, manifiestos de Kubernetes) vive en el mismo repo, fuera de docs/. Este sitio es la documentación humana; el repo completo es la fuente ejecutable.