Laboratorio casero de Kubernetes
Un pequeño ejemplo de cómo conseguir un entorno de despliegue robusto y de bajo coste para casa

Características
- Resiliencia. Aguanta caídas de nodos o aplicaciones, reiniciándose o moviendo cargas a otros nodos
- Escalabilidad. Tanto física (añadir más nodos) como lógica (añadir más réplicas, productos, …)
- Observabilidad. Métricas hardware, infra y software.
Hardware
En mi caso:
- 1 raspberry 4GB
- 2 raspberry 8GB
- 1 rock64 4GB
- 1 intel celeron 5000
- 1 intel celeron n100
- 2 SSDs
- Switch 8 puertos, cables, envolventes, …
- 1 SAI
Software
En mi caso, entre otras cosas:
- Web personal
- Servidor de música
- Servidor de fotos
- Domótica de casa
- Videovigilancia
- Ingesta de datos (scrappers, rpa, conectores servicios web externos, …)
- Mensajería asíncrona (bus de eventos usado por ingesta, domótica, alertas, monitorización)
- Alertas (mail, telegram, …)
- Infra software: registry, monitorización, dns filtrado, balanceador, …
Principales retos
- Multi-arquitectura. No todo está preparado para esto. Se han requerido varias adaptaciones para acomodar nodos intel y arm en el mismo cluster.
Principales limitaciones
- Hay puntos únicos de fallo; por ejemplo, un nodo tiene un dongle USB Zwave. Eso limita las poisibilidades de redespliegue en caliente en otro nodo.
- Potencia. No se le pueden pedir milagros a las raspberries, ni en CPU ni en memoria.
- Almacenamiento distribuido. Algún repositorio es masivo y no puede ser distribuido (con los recursos hardware que tengo).