🧠 Un poco de contexto: ¿qué es un “worker”?
Vale, ya tienes tu flamante cluster Kubernetes montado en un nodo. ¡Enhorabuena, sensei! 🥳
Pero ahora necesitas más músculo. Un solo servidor no da para tanto…
Aquí entran los workers: son los obreros, los soldados, los nodos que ejecutan tus aplicaciones en contenedores.
Sin ellos, tu cluster sería como un general sin ejército. Y eso, amigo mío, no mola.
Hoy te enseño, en plan “café en mano”, cómo unir workers a tu cluster de Kubernetes.
📦 Paso 1: Prepara los nodos workers (lo mismo que el master, pero sin montar el control plane)
Antes de unirlos, cada worker necesita estar listo para la acción.
Así que toca hacer prácticamente el mismo ritual de instalación que hiciste en el nodo principal:
Primero, actualizamos:
sudo apt update -y && sudo apt dist-upgrade -y
Instalamos las utilidades básicas:
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release software-properties-common vim locate bash-completion command-not-found
🌉 Paso 2: Activamos IP Forwarding en los workers (¡también aquí, claro!)
Para que el tráfico fluya como en una autopista alemana, ejecutamos:
sudo tee /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
EOF
Aplicamos los cambios:
sudo sysctl --system
🎯 ¿Por qué otra vez?
Porque cada nodo debe poder enviar/recibir tráfico entre pods. Si no, tu red será un poema triste.
📦 Paso 3: Instalamos containerd en los workers
Instalamos el motor de contenedores:
sudo apt install -y containerd
Creamos su configuración:
sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml
Modificamos para usar systemd:
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
Reiniciamos y activamos containerd:
sudo systemctl restart containerd
sudo systemctl enable containerd
💾 Paso 4: Apagamos el swap (again)
No, Kubernetes no perdona. Así que fuera swap también aquí:
sudo swapoff -a
Y lo desactivamos para siempre:
sudo sed -i.bak '/\bswap\b/ s/^/#/' /etc/fstab
🔥 Paso 5: Instalamos kubelet, kubeadm y kubectl en los workers
Sí, también tienes que instalar Kubernetes en cada nodo, pero no inicias el cluster esta vez.
Primero, bajamos las llaves:
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
Añadimos el repositorio:
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list
Actualizamos e instalamos:
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
🎯 Importante:
Aquí NO usamoskubeadm init, que solo se usa en el nodo master.
🛸 Paso 6: Une el worker al cluster (¡el gran momento!)
Desde tu nodo master (donde hiciste kubeadm init), ejecuta este comando para obtener el token de unión:
kubeadm token create --print-join-command
Te devolverá algo tipo:
sudo kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash sha256:1234567890abcdef...
Este comando es la llave mágica para que tus workers entren al club.
Copia ese comando completo y ejecútalo en cada nodo worker.
Inciso
Si has perdido el token o te ha caducado (caduca a las 24 horas) puedes volver a generar uno desde el control plane del articulo anterior, con el siguiente comando:
sudo kubeadm token create --print-join-command
Si necesitáis listar el que ya tenéis, y así verificáis si está caducado o no, usad este comando:
kubeadm token list
Os devolverá algo del estilo:

✅ Paso 7: Verifica que todo fue bien
De vuelta en el nodo master, comprueba que los workers han sido aceptados:
kubectl get nodes
Si ves algo como esto:
NAME STATUS ROLES AGE VERSION
master-node Ready control-plane 1h v1.30.0
worker-node-01 Ready <none> 2m v1.30.0
worker-node-02 Ready <none> 1m v1.30.0
¡Felicidades, padawan! 🥳
¡Tu cluster Kubernetes ya tiene más fuerza que una estrella de la muerte recién terminada!
🧹 Resumen rápido:
| Paso | ¿Qué hicimos? |
|---|---|
| Preparar sistema | Actualizar e instalar utilidades |
| Habilitar IP Forwarding | Para la red de pods |
| Instalar containerd | Motor de contenedores |
| Desactivar swap | Obligatorio para Kubernetes |
| Instalar kubelet, kubeadm, kubectl | ¡Los básicos de Kubernetes! |
| Unirse al cluster | Ejecutar el join-command |
| Verificar | Confirmar que están listos |
📢 ¡Comenta y comparte!
¿Quieres que en el próximo artículo te enseñe cómo desplegar una primera app en tu nuevo cluster (y verla correr como Forrest Gump)? 🏃♂️🏃♀️
¡Cuéntamelo en los comentarios de Youtube!
