Cómo crear un clúster de Raspberry Pi con k3s
Llevas tiempo mirando Kubernetes sin dar el paso
Si sabes moverte por la terminal, tienes alguna Raspberry Pi más o menos ociosa y llevas meses leyendo sobre Kubernetes sin acabar de arrancar, este tutorial va para ti. No hace falta haber trabajado en un datacenter ni tener ninguna certificación. Basta con soltura en Linux y ganas de trastear con algo real.
Kubernetes tiene fama de complejo, y no es del todo inmerecida. Pero mucha de esa complejidad viene de configuraciones pensadas para clústeres de empresa con decenas de nodos. k3s recorta todo lo que no necesitas para un lab casero y deja lo esencial. Si has mirado tutoriales y te has perdido antes de llegar al primer kubectl, aquí empezamos desde el principio y sin atajos que luego muerden.
Al final de este post tendrás un clúster funcional con tres Raspberry Pi, entenderás qué hace cada pieza y sabrás dónde están los límites de esta configuración, que también los tiene. Sin promesas de que «estará listo para producción» porque eso depende de lo que quieras correr encima, pero sí con todo lo necesario para empezar a experimentar en casa.
Por qué importa
Un binario, todo incluido
k3s pesa ~70 MB y ya trae containerd, Flannel y Traefik. Sin instalar piezas por separado.
ARM64 nativo
Raspberry Pi 4 corre Cortex-A72 ARM64; k3s lo soporta de serie. Solo necesitas el SO de 64 bits.
Consumo ridículo
Cada Pi 4 consume entre 3 W en idle y ~7 W bajo carga. El clúster entero cabe en una regleta.
Almacenamiento: tú lo pones
k3s no incluye almacenamiento persistente compartido. Necesitarás NFS, Longhorn u otra solución CSI compatible con ARM64.
Preguntas frecuentes
Q: ¿Cuánta RAM necesita cada Raspberry Pi para correr k3s?
A: Depende del rol: el nodo server necesita al menos 1 GB de RAM según la documentación oficial de k3s; los nodos agent pueden funcionar con 512 MB. En la práctica, una Pi 4 de 2 GB es el mínimo cómodo para el server si vas a desplegar alguna carga sobre él.
Q: ¿Qué pasa si el nodo server se cae?
A: En esta configuración de un solo server, es un single point of failure: si cae, el control plane deja de responder y no puedes gestionar el clúster. Las cargas ya desplegadas pueden seguir corriendo en los agents, pero sin capacidad de escalar ni reparar pods. Alta disponibilidad real requiere tres servers mínimo con --cluster-init.
Q: ¿Vale una Raspberry Pi de 32 bits para los nodos agent?
A: No. k3s soporta ARM64 de forma nativa, pero necesitas Raspberry Pi OS 64-bit (Bullseye o Bookworm) para poder ejecutar imágenes de contenedor ARM64. La versión 32-bit del SO no es compatible con la mayoría de imágenes actuales y te generará problemas al desplegar.
Q: ¿Cómo gestiono el almacenamiento persistente entre nodos?
A: k3s no incluye ninguna solución de almacenamiento compartido: tendrás que añadirla por tu cuenta. Las opciones más habituales son un servidor NFS externo (el más sencillo con una Pi extra o un NAS) o Longhorn, que es el CSI que Rancher recomienda y tiene soporte ARM64, aunque consume recursos adicionales.
Q: ¿Por qué tengo que tocar /boot/cmdline.txt antes de instalar?
A: Raspberry Pi OS no habilita cgroups de memoria por defecto, y k3s los necesita para gestionar los recursos de los contenedores. Si no añades 'cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1' y reinicias antes de instalar, k3s arrancará con errores o se comportará de forma impredecible.










Deja una respuesta