🧠 ¿Qué narices es Kubernetes y por qué debería importarme?
Antes de lanzarnos a instalar cosas a lo loco, pongamos algo de contexto.
Kubernetes (o “k8s” para los amigos) es el orquestador de contenedores más famoso del mundo.
Piensa en Kubernetes como un superadministrador: mueve tus aplicaciones, las escala, las cura si se rompen, y las mantiene disponibles.
Es como tener un ejército de robots trabajando para ti… pero gratis (salvo el coste emocional de instalarlo 😅).
En este artículo vamos a montar Kubernetes paso a paso, comando a comando, y te voy explicando para qué sirve cada cosa, en un lenguaje claro y sin dramas 😎.
📦 Paso 1: Preparando la máquina (el “mise en place” de Kubernetes)
Primero de todo, como buenos profesionales, actualizamos el sistema:
sudo apt update -y && sudo apt dist-upgrade -y
🎯 ¿Qué hace esto?
Actualiza los paquetes de Ubuntu para que no tengamos problemas luego instalando versiones viejas.
Instalamos algunas herramientas básicas que nos van a hacer falta:
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release software-properties-common vim bash-completion locate net-tools command-not-found
🎯 ¿Por qué?
Estos paquetes permiten descargar cosas seguras, manejar llaves GPG y repos externos (esenciales para añadir Kubernetes después). Más unos adicionales que siempre instalo en mis máquinas
🌉 Paso 2: Activar IP Forwarding (o “dejad pasar los paquetes, por favor”)
Kubernetes necesita que el tráfico de red pueda circular libremente entre contenedores.
Así que toca darle permiso al sistema:
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 cambios:
sudo sysctl --system
🎯 ¿Qué hemos hecho?
Hemos dicho a Linux: “Oye, no seas rata, deja que los paquetes de red crucen los puentes y viajen felices”.
Esto es VITAL para Kubernetes y Cilium.
📦 Paso 3: Instalando containerd (el motor bajo el capó)
Kubernetes no ejecuta contenedores directamente, necesita un motor. Vamos a usar containerd, que es rápido y fiable:
sudo apt install -y containerd
Luego, preparamos su configuración:
sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml
Hacemos que trabaje mejor con systemd (el jefe de procesos de Ubuntu):
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
Reiniciamos todo:
sudo systemctl restart containerd
sudo systemctl enable containerd
🎯 ¿Qué hace esto?
Instalamos y configuramoscontainerdpara que Kubernetes pueda crear contenedores como un campeón.
💾 Paso 4: Adiós, swap (lo siento, amigo)
Kubernetes ODIA el swap (el espacio de memoria virtual del disco). Así que fuera:
sudo swapoff -a
Y para que no vuelva a activarse al reiniciar:
sudo sed -i.bak '/\bswap\b/ s/^/#/' /etc/fstab
🎯 ¿Por qué?
Kubernetes necesita que la RAM sea totalmente predecible. El swap confunde a los nodos.
🔥 Paso 5: Instalando kubeadm, kubelet y kubectl
Ahora sí, vamos a por lo importante:
Primero, descargamos la llave de confianza:
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 oficial:
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 y ¡boom! Instalamos Kubernetes:
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
🎯 ¿Qué es cada cosa?
- kubelet: el agente que corre en cada máquina.
- kubeadm: la herramienta para inicializar clusters.
- kubectl: el control remoto para hablar con el cluster.
🎛 Paso 6: ¡A montar el cluster!
Momento épico: inicializar Kubernetes.
sudo kubeadm init --pod-network-cidr=172.16.0.0/16
🎯 ¿Qué hace esto?
Monta el cerebro de Kubernetes, el control plane, y reserva el rango IP para los pods.
Ahora configuramos kubectl para no tener que ser root todo el rato:
mkdir -p $HOME/.kube
sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
source <(kubectl completion bash)
echo 'source <(kubectl completion bash)' >> ~/.bashrc
Y si estás solo en una máquina (modo laboratorio), permite que los pods se programen en el nodo maestro (no recomendado, para pruebas en modo laboratorio, ok):
kubectl taint nodes --all node-role.kubernetes.io/control-plane-
⛵ Paso 7: Instalamos Helm (el timón de Kubernetes)
Helm es el gestor de paquetes de Kubernetes. ¡Una joya!
Instalamos Helm:
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm
Comprobamos que funcione:
helm version
🎯 ¿Por qué Helm?
Porque instalar cosas en Kubernetes manualmente es un infierno. Helm te salva la vida.
🐝 Paso 8: Instalamos Cilium (el alma de la red)
Usaremos Cilium, la joya de la corona en CNI modernos (más rápido, seguro y sexy que otros).
Añadimos su repositorio:
helm repo add cilium https://helm.cilium.io/
helm repo update
Instalamos:
helm template cilium cilium/cilium --version 1.16.1 \
--namespace kube-system > cilium.yaml
kubectl apply -f cilium.yaml
🎯 ¿Qué es Cilium?
Es el motor que conecta pods, gestiona la seguridad de red, y usa eBPF para volar bajito (y rápido).
Verificamos:
kubectl get pods -n kube-system -l k8s-app=cilium
🎉 ¡Cluster montado! ¿Y ahora qué?
Si todo salió bien, ya tienes tu Kubernetes vivo y corriendo sobre Ubuntu 24.04, con Cilium acelerando los paquetes y Helm listo para instalar apps como si no hubiera un mañana.
Ahora puedes desplegar tus primeras aplicaciones, probar Hubble (observabilidad de Cilium) o simplemente admirar tu obra maestra.
🧹 Resumen final:
| Paso | ¿Qué hicimos? |
|---|---|
| Actualizar Ubuntu | ¡Tener todo listo! |
| Habilitar IP Forwarding | Dejar pasar los paquetes |
| Instalar containerd | Preparar el motor |
| Desactivar swap | No confundir a Kubernetes |
| Instalar Kubernetes componentes | Cerebro y herramientas |
| Inicializar el cluster | Crear la infraestructura |
| Instalar Helm | Gestionar todo fácilmente |
| Instalar Cilium | Tener redes potentes |
📢 ¡No te vayas sin comentar!
¿Te gustaría que en el próximo artículo te enseñe cómo instalar Hubble para espiar el tráfico de tu cluster como un agente secreto? 🕵️♂️
¡Déjamelo en los comentarios del vídeo de Youtube y no olvides suscribirte!
