Una guía práctica basada en errores reales para montar un clúster K3s en Ubuntu 22.04.
Si alguna vez quisiste instalar un clúster Kubernetes ligero en Ubuntu y terminaste con errores que ni Google conocía… este post es para ti 😀
¿Por qué escribí esta guía?
Hace poco comencé a trabajar con servidores durante mis prácticas profresionales.
Tenía que montar un clúster Kubernetes, pero me encontré con un gran problema:
-> La mayoría de guías eran muy básicas o estaban incompletas.
-> Los errores que me salían eran tan específicos que ni StackOverflow los tenía.
-> Y bueno… entender documentación técnica en inglés no es mi fuerte :c
Así que decidí anotar cada error, comando y solución que encontraba.
Un amigo me dijo: “¿Por qué no lo subes a Dev.to? Seguro ayudas a más gente”
Y bueno, aquí estamos 💻💙
Qué encontrarás en este post
- Cómo instalar K3s en Ubuntu 22.04
- Cómo conectar 1 master y 2 nodos workers
- Configuración de firewall, SSH y transferencia de archivos
- Solución a errores raros como el port 6444 already in use
- Un resumen rápido de comandos útiles
📄 Puedes descargar la guía completa en PDF aquí 👉 K3s Installation Manual
Requisitos previos
- 3 servidores con Ubuntu 22.04
- Conectividad entre todos los nodos
- Acceso
sudo
- Paciencia (y café, mucho café)
Instalación del nodo master
curl -sfL https://get.k3s.io | sh -
sudo systemctl status k3s
sudo kubectl get nodes
Si todo va bien, deberías ver tu nodo master con estado “Ready”.
Para usar kubectl sin sudo, recomiendo crear un grupo k8s-admins y reinstalar K3s con permisos correctos (lo explico a detalle en el PDF)
Añadiendo los worker nodes
En cada worker node ejecuta:
curl -sfL https://get.k3s.io | \
K3S_URL=https://MASTER_IP:6443 \
K3S_TOKEN=YOUR_TOKEN_HERE sh -
Luego, desde el master:
kubectl get nodes
¡Y listo! Si todo aparece como “Ready”, tienes tu primer clúster K3s funcionando
Solución de errores comunes
El worker no aparece en el clúster
Revisa los logs:
sudo journalctl -u k3s-agent.service --no-pager
Si aparece address already in use, significa que el puerto 6444 está ocupado.
sudo lsof -i :6444
sudo kill -9
Y si eso no basta, la guía incluye pasos para reinstalar desde cero sin romper todo.
Configuración de firewall
En el master:
sudo ufw allow 6443/tcp
sudo ufw allow 10250/tcp
sudo ufw allow 8472/udp
sudo ufw allow 2379:2380/tcp
sudo ufw allow 22/tcp
sudo ufw enable
⚠️ No cierres el puerto 22 o perderás acceso SSH. (Lo aprendí a la mala 💀)
Administración de contenedores
kubectl get pods -A
sudo k3s crictl ps
Usa kubectl
para ver el clúster y crictl
para depurar contenedores.
Reflexión final
Documentar mis errores me enseñó más que seguir tutoriales paso a paso.
Cada fallo que resolvía me ayudaba a entender realmente cómo funciona Kubernetes.
Si estás aprendiendo DevOps: documenta todo.
Tu “error raro del día” podría ser la solución que alguien más necesita mañana 💡