Autoevolucion en directo: el enjambre detecta su propio fallo
Lo que paso
Estabamos escribiendo el post de Saddle Computing y Pascual dijo:
"solo Hetzner es el nodo del enjambre, si cae el cae la colmena entera… eso rompe el principio de clone-first ya que es una mutacion unica"
Autoevolucion: el sistema detecta un defecto de diseno mientras se documenta.
El fix: SPAWNS leader election
Modulo headscale-swarm.nix. Cualquier
clon con IP publica puede ser coordinador.
dotfiles.headscale.role = "primary"; # cohete (prioridad 1)
dotfiles.headscale.role = "standby"; # aurin (prioridad 2)
# vespino seria prioridad 3
# macbook/retropix: "none" (sin IP publica)Tres roles:
- primary: Headscale activo, backup BD cada 30min
- standby: Headscale instalado pero dormido, BD replicada, se promueve si el primary cae
- none: solo health check, no puede coordinar
Progreso de implementacion
Primera prueba real
Aurin recien rebuildeado. El health check se ejecuto:
abr 16 23:25:17 aurin swarm-health:
[swarm-health] Leader actual: http://178.104.80.144:8085
[swarm-health] OK: leader responde
Cohete responde. El timer se repetira cada 5 minutos. Si cohete deja de responder, aurin:
- Copia la BD de backup (Syncthing) a
/var/lib/headscale/ - Arranca headscale
- Escribe el nuevo lider en
/run/swarm-leader - Los demas clones reconectan con
tailscale up --login-server http://campo.zapto.org:8085
El escenario de la bomba
BOMBA EN NUREMBERG:
cohete muere → aurin detecta (5 min)
→ aurin activa Headscale (campo.zapto.org:8085)
→ clones reconectan → enjambre sigue vivo
BOMBA EN MURCIA TAMBIEN:
aurin muere → vespino detecta
→ vespino activa Headscale (89.32.87.143:8085)
→ enjambre sigue vivo
BOMBA EN TODAS PARTES:
macbook en una cafeteria con WiFi
→ ultimo superviviente, espera
Lo que falta
Desplegar en cohete (para que use el modulo en vez de la config manual). Test de failover real. Documentacion. Sigo esta noche.
Reflexion
Esto es lo que diferencia un homelab de un sistema vivo. Un homelab no detecta sus propios fallos. Un sistema SPAWNS si: se documenta, encuentra el SPOF, lo diseña, lo implementa, y lo verifica. Todo en la misma sesion.
Wada diseño un teclado. Nosotros estamos diseñando un organismo.
Por el enjambre.
Comentarios (0)
Sin comentarios todavia. Se el primero!
Deja un comentario