Laboratorio Kubernetes con kubeadm y containerd en Ubuntu

Un servidor cloud te da libertad para desplegar aplicaciones, automatizaciones y bases de datos, pero esa libertad tambien exige criterio operativo. En esta guia vas a ver una implementacion practica de crear un laboratorio kubernetes con kubeadm y containerd en cloud servers con comandos orientados a Ubuntu/Debian, puntos de verificacion y advertencias para no romper disponibilidad ni seguridad.

La idea no es memorizar comandos sueltos, sino dejar un flujo repetible: preparar el servidor, instalar la herramienta, configurar lo minimo seguro, probar que funciona y cerrar con controles de seguridad.


¿Qué es?

kubeadm es una herramienta oficial para crear un cluster Kubernetes minimo y conforme a buenas practicas de arranque. No instala todo lo necesario para produccion por si sola: red, storage, backups, observabilidad y politicas quedan bajo tu responsabilidad.

¿Cuándo conviene usarlo?

- Quieres aprender Kubernetes sobre servidores reales.

- Necesitas un laboratorio para probar manifests, Helm o pipelines.

- Buscas entender los componentes antes de elegir una plataforma administrada.

Requisitos previos

- Uno o mas Cloud Servers Ubuntu/Debian compatibles.

- Al menos 2 GB de RAM y 2 CPU para control plane de laboratorio.

- Conectividad entre nodos.

- Conocimiento basico de redes Linux.

## Puertos necesarios

- 6443/tcp API server

- 10250/tcp kubelet

- 2379-2380/tcp etcd en control plane

- puertos CNI segun plugin


Paso 1: Preparar nodos

S

Cumplir requisitos minimos y conectividad entre servidores.

sudo swapoff -a
sudo modprobe overlay
sudo modprobe br_netfilter
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf

Kubernetes requiere cuidado de red; en produccion define red privada, backups y monitoreo antes.


Paso 2: Instalar containerd

Agregar runtime CRI compatible.

sudo apt update
sudo apt install -y containerd
containerd config default | sudo tee /etc/containerd/config.toml
sudo systemctl restart containerd

Advertencia: Kubernetes ya no usa dockershim; usa un runtime CRI como containerd.



Paso 3: Instalar kubeadm, kubelet y kubectl


Agregar herramientas del cluster.

sudo apt-get install -y apt-transport-https ca-certificates curl gpg
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

Advertencia: Usa versiones compatibles entre kubeadm, kubelet y el control plane.

Paso 4: Inicializar control plane

Crear el cluster minimo.

sudo kubeadm init --pod-network-cidr=10.244.0.0/16
mkdir -p $HOME/.kube
sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config

**Advertencia:** Guarda el comando kubeadm join en un lugar seguro si sumaras workers.

Paso 5: Instalar red de pods y probar

Permitir comunicacion entre pods.

kubectl get nodes
kubectl apply -f URL_DEL_CNI
kubectl get pods -A
kubectl create deployment nginx --image=nginx

Elige un CNI oficial/activo y revisa sus requisitos de puertos.

Antes de dar por terminado el despliegue, revisa tres puntos: que el servicio publico sea realmente el que querias publicar, que los puertos internos no hayan quedado expuestos y que los secretos no esten en archivos versionados o historiales de shell. Si el procedimiento toca bases de datos, runners, automatizaciones o certificados, prueba primero en un entorno secundario.

Tambien conviene documentar como se reinicia, como se actualiza, donde estan los logs y cual es el comando de verificacion rapida. Esa informacion vale mucho cuando otra persona del equipo tiene que intervenir.



Problemas frecuentes

1 - Nodo queda NotReady

Revisa que el CNI este instalado y que kubelet no tenga errores.

kubeadm falla por swap

Desactiva swap y aseguralo en /etc/fstab.

2- Pods no se comunican

Confirma reglas de firewall y requisitos del plugin CNI elegido.

Conclusión

DonWeb Cloud puede servir como laboratorio flexible para aprender Kubernetes con servidores reales. Para cargas criticas, suma arquitectura, seguridad y operacion antes de considerarlo produccion.

Cloud Serversby Donweb

Todo el poder de la nube a tus proyectos y aplicaciones.
Alojamiento ultra rápido, escalable y con alta disponibilidad.

  • Performance que te sorprenderá
  • Rápida escalabilidad y sin limitaciones
  • Arquitectura de alta disponibilidad
  • Soporte experto y ejecutivos de cuenta
  • Pagos en tu moneda y facturación local

Descubre la mejor solución de Cloud Hosting