Saltar al contenido
Lectura13 minPreview

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.27

En 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.27

No 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ñoHito
2003–2004Google crea Borg, su sistema interno para repartir tareas entre miles de servidores
2013Docker populariza los contenedores fuera de las grandes empresas
2014Google presenta Kubernetes como proyecto de código abierto, inspirado en Borg
2015Sale la versión 1.0 y Google dona el proyecto a la recién creada Cloud Native Computing Foundation (CNCF)
2018Kubernetes es el primer proyecto en "graduarse" en la CNCF, señal de madurez
2022La 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

ConceptoQué significa
ClústerConjunto de máquinas que Kubernetes administra como una sola
NodoCada máquina del clúster, física o virtual
PodLa unidad mínima que se ejecuta: uno o más contenedores juntos
ManifiestoArchivo YAML que describe un objeto y su estado deseado
Plano de controlLos componentes que deciden y vigilan; el cerebro del clúster
kubectlLa herramienta de línea de comandos para hablar con el clúster
NamespacePartició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.