Qué es Kubernetes y por qué orquestar contenedores
En el curso de Docker usted aprendió a empaquetar una aplicación en una imagen y a ejecutarla como contenedor. Eso funciona muy bien en una laptop o en un solo servidor. Pero imagine que la tienda en línea de Cafetal Digital, una empresa ficticia de San José, tiene que atender miles de clientes durante el Black Friday: ya no hablamos de un contenedor, sino de decenas repartidos en varias máquinas. ¿Quién los arranca, quién los reinicia cuando fallan y quién reparte el tráfico entre ellos? Esa es la pregunta que responde un orquestador de contenedores, y Kubernetes es el más usado del mundo.
Qué es Kubernetes
Kubernetes es un sistema de código abierto que ejecuta y vigila contenedores repartidos en un grupo de máquinas, llamado clúster, como si fueran una sola computadora. El nombre viene del griego kubernetes, "timonel" o "piloto de barco", y por eso su logo es un timón. Se abrevia K8s porque hay ocho letras entre la K y la s.
Con Docker solo, cada tarea operativa depende de una persona o de un script:
- Reinicio ante fallos: si un contenedor se cae a las 3 de la mañana, alguien tiene que notarlo y levantarlo.
- Escalado: si el tráfico se triplica, hay que arrancar más copias y decidir en qué servidor cabe cada una.
- Balanceo: los clientes deben llegar solo a copias sanas.
- Actualizaciones: cambiar de versión sin cortar el servicio exige reemplazar copias una por una.
- Configuración y secretos: cada copia necesita las mismas variables y contraseñas.
Kubernetes automatiza todo eso con una idea central: el estado deseado. Usted no dice "arranque este contenedor", sino "quiero tres copias de esta aplicación, con esta imagen y esta configuración". Kubernetes compara continuamente lo pedido con lo que ocurre y corrige las diferencias: si una copia muere, crea otra; si un servidor se apaga, mueve sus cargas. Ese ciclo de observar y corregir se llama bucle de reconciliación.
Declarativo frente a imperativo
Con Docker usted suele dar órdenes paso a paso, de forma imperativa:
docker run -d --name tienda -p 8080:80 nginx:1.27En Kubernetes lo habitual es trabajar de forma declarativa: describe el resultado en un archivo YAML y se lo entrega al clúster.
apiVersion: apps/v1
kind: Deployment
metadata:
name: tienda
spec:
replicas: 3
selector:
matchLabels:
app: tienda
template:
metadata:
labels:
app: tienda
spec:
containers:
- name: web
image: nginx:1.27No se preocupe por cada línea; en el módulo 2 la desarmará pieza por pieza. Fíjese solo en replicas: 3: eso es estado deseado.
Breve historia
| Año | Hito |
|---|---|
| 2003–2004 | Google crea Borg, su sistema interno para repartir tareas entre miles de servidores |
| 2013 | Docker populariza los contenedores fuera de las grandes empresas |
| 2014 | Google presenta Kubernetes como proyecto de código abierto, inspirado en Borg |
| 2015 | Sale la versión 1.0 y Google dona el proyecto a la recién creada Cloud Native Computing Foundation (CNCF) |
| 2018 | Kubernetes es el primer proyecto en "graduarse" en la CNCF, señal de madurez |
| 2022 | La versión 1.24 deja de usar Docker como runtime interno; las imágenes de Docker siguen funcionando |
Hoy publica unas tres versiones al año, y cada una recibe parches durante unos catorce meses. Mantener el clúster actualizado es también una tarea de seguridad.
Dónde se usa
- Nube pública: servicios administrados como Amazon EKS, Google GKE y Azure AKS.
- Centros de datos propios: bancos, telecomunicaciones y gobierno con distribuciones como OpenShift o Rancher.
- Borde: versiones livianas como k3s en tiendas, fábricas o equipos pequeños.
- Su computadora: kind y minikube, para aprender y desarrollar, que es lo que usará aquí.
Por qué importa en ciberseguridad
Kubernetes trae ventajas defensivas reales: configuración versionada en archivos revisables, permisos granulares, aislamiento por espacios de nombres y políticas de red. Pero también amplía la superficie de ataque. Un clúster mal configurado puede exponer su API a internet, dar permisos de administrador a cualquier aplicación o guardar contraseñas sin protección, y muchos incidentes públicos en la nube empezaron así. Analistas de SOC, ingenieros de plataforma, auditores y equipos DevSecOps necesitan leer un manifiesto y detectar qué está mal. Este curso combina las dos cosas: entender cómo funciona y configurarlo con mínimo privilegio desde el primer día.
Conceptos clave
| Concepto | Qué significa |
|---|---|
| Clúster | Conjunto de máquinas que Kubernetes administra como una sola |
| Nodo | Cada máquina del clúster, física o virtual |
| Pod | La unidad mínima que se ejecuta: uno o más contenedores juntos |
| Manifiesto | Archivo YAML que describe un objeto y su estado deseado |
| Plano de control | Los componentes que deciden y vigilan; el cerebro del clúster |
| kubectl | La herramienta de línea de comandos para hablar con el clúster |
| Namespace | Partición lógica del clúster para separar equipos o entornos |
Cómo leer las sintaxis de este curso
Las fichas de comandos usan esta convención: lo que va entre corchetes es opcional ([OPCIONES]), lo escrito en MAYÚSCULAS lo reemplaza usted (NOMBRE pasa a ser web) y ... indica que se puede repetir. Para pedir ayuda, kubectl --help lista los comandos, kubectl get --help explica uno concreto con ejemplos y kubectl explain pod.spec describe los campos de un objeto.