Arostik Logo
ArostikVLARCK

Micro-Technology Solutions

Servidores y DevOpsNivel: Avanzado16 min de lección

¿Qué es Kubernetes (K8s) y cómo Orquesta Contenedores?

Aprende los conceptos fundamentales de K8s: Pods, Deployments, Services, Ingress, Control Plane y auto-escalado horizontal.

¿Qué es Kubernetes (K8s) y cómo Orquesta Contenedores?
AROS STUDENT
E
Equipo de Arquitectura DevOps ArostikEspecialistas en Kubernetes y Cloud Native · Actualizado el 25 sep 2026
¿Qué es Kubernetes y por qué es el Estándar de la Nube?

Docker revolucionó el desarrollo permitiendo empaquetar aplicaciones con todas sus dependencias en contenedores ligeros y portables. Sin embargo, cuando pasas de ejecutar 2 contenedores en tu laptop a ejecutar **5,000 contenedores distribuidos en 200 servidores físicos en producción**, surgen problemas colosales: ¿qué servidor tiene memoria RAM libre para colocar el nuevo contenedor? ¿qué pasa si un servidor se quema en plena madrugada? ¿cómo balanceas el tráfico entre 50 copias de la misma app? **Kubernetes** (a menudo abreviado como **K8s**, originado en el proyecto secreto Borg de Google y donado a la CNCF) es la plataforma de orquestación de contenedores más avanzada del planeta. Automatiza por completo el despliegue, el escalado, la gestión de redes, el balanceo de carga y la autorrecuperación (**Self-Healing**) de aplicaciones en clústeres masivos de servidores.

¿Cuáles son las Capacidades Revolucionarias de Kubernetes?
Ventajas y Beneficios:
  • ✓Autorrecuperación Automática (Self-Healing): Si un contenedor colapsa por un error de código, K8s lo reinicia en un segundo. Si un nodo entero del datacenter muere, K8s reprograma todos sus Pods en otros servidores sanos.
  • ✓Escalado Automático Elástico (HPA - Horizontal Pod Autoscaler): Aumenta automáticamente de 5 a 50 réplicas cuando el uso de CPU supera el 70% durante una venta flash, y las reduce cuando el tráfico disminuye.
  • ✓Despliegues Progresivos sin Caídas (Rolling Updates): Actualiza la versión de tu software gradualmente, contenedor por contenedor, verificando la salud antes de retirar la versión anterior.
Problemas que resuelve:
  • •Elimina las llamadas de emergencia nocturnas a ingenieros cuando un servidor individual falla.
  • •Optimiza el gasto en la nube empacando contenedores de forma densa en la menor cantidad de máquinas virtuales posible (Bin Packing).
  • •Ofrece una capa de abstracción universal: tu aplicación corre de forma idéntica en AWS (EKS), Google Cloud (GKE), Azure (AKS) o servidores bare-metal locales.
El Capitán de un Barco Carguero con Miles de Contenedores

Imagina un buque portacontenedores colosal cruzando el océano Pacífico: - **Docker es el Contenedor Marítimo de Metal**: Diseñado con medidas estándar para meter mercancía adentro y que nadie se preocupe por lo que hay en el interior. - **Kubernetes es el Capitán y la Grúa Automatizada del Puerto**: El capitán no carga los contenedores con sus manos. Él tiene un plano maestro digital del barco (los manifiestos YAML). La grúa automatizada sabe exactamente en qué piso y columna colocar cada contenedor según su peso y temperatura. Si una ola gigantesca golpea el barco y tira un contenedor al agua (un servidor que colapsa), la grúa inteligente saca inmediatamente un contenedor de repuesto idéntico del almacén de reserva, lo coloca en un espacio libre y conecta las mangueras de electricidad sin detener la marcha del buque.

Conexión con la Tecnología:Tú defines el **Estado Deseado** en un archivo YAML (`replicas: 3`). El bucle de control de Kubernetes (**Control Plane**) compara continuamente el estado real con el deseado y toma las acciones necesarias para mantener siempre 3 réplicas vivas.

Explicación Paso a Paso del Tema

1

La Jerarquía de Componentes de Kubernetes

Comprende la terminología fundamental antes de ejecutar comandos: - **Pod**: La unidad mínima de despliegue en K8s. Es una envoltura que aloja uno o más contenedores estrechamente acoplados que comparten la misma IP y volúmenes. - **Deployment**: Objeto declarativo que gestiona el ciclo de vida de los Pods, sus réplicas y sus actualizaciones progresivas. - **Service**: Punto de entrada con IP virtual estable que balancea la carga entre los Pods dinámicos. - **Ingress**: Controlador de acceso HTTP/HTTPS perimetral que enruta rutas de dominio hacia los Services internos.

Consejo Profesional:

Casi nunca creas Pods individuales a mano en producción; siempre declaras Deployments para que el ReplicaSet supervise su vida.

2

Escribir un Manifiesto Declarativo YAML

Crea un archivo `deployment.yaml` para indicarle a Kubernetes que mantenga 3 réplicas de una aplicación web Nginx.

Observa la estructura limpia con `replicas`, selectores de etiquetas (`matchLabels`) y especificación del contenedor.

Comando de Terminal / Código
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mi-web-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: mi-web
  template:
    metadata:
      labels:
        app: mi-web
    spec:
      containers:
      - name: nginx
        image: nginx:1.25-alpine
        ports:
        - containerPort: 80
        resources:
          limits:
            memory: "128Mi"
            cpu: "250m"
Desglose de Parámetros:
Parámetro / FlagTipo / RolSignificado y Uso
replicas: 3Declaración de EstadoIndica a Kubernetes que deben existir exactamente 3 pods corriendo en todo momento.
resources.limitsRestricciónLímite de CPU y memoria RAM asignados para evitar que un contenedor hambriento sature el nodo.
Error Común a Evitar:

No definir límites de recursos (`resources.limits`): si un contenedor tiene una fuga de memoria, consumirá toda la RAM del nodo físico, obligando al kernel a matar otros procesos críticos.

3

Comandos Esenciales de kubectl para Operar el Clúster

Usa la herramienta de línea de comandos oficial `kubectl` para interactuar con la API del clúster.

Puedes aplicar manifiestos, ver el estado de los Pods y leer los logs en vivo.

Comando de Terminal / Código
# Aplicar el archivo declarativo en el clúster:
kubectl apply -f deployment.yaml

# Ver el estado de todos los pods y en qué servidor físico corren:
kubectl get pods -o wide

# Ver los logs en tiempo real de los pods del deployment:
kubectl logs -l app=mi-web --tail=50 -f
Desglose de Parámetros:
Parámetro / FlagTipo / RolSignificado y Uso
apply -fComandoAplica de forma idempotente la configuración declarada en el archivo YAML.
get pods -o wideComandoMuestra el estado, la IP interna y el nombre del nodo físico asignado a cada Pod.
Consejo Profesional:

Configura el autocompletado de bash para kubectl y añade el alias `alias k=kubectl` en tu `~/.bashrc` para multiplicar tu velocidad en la terminal.

Casos Prácticos Reales en Producción

Situaciones de ingeniería reales sin mención de presupuestos ficticios.

1La Supervivencia de una Tienda Online Durante la Falla de un Servidor Físico

Escenario Real:

Durante una campaña de ventas de Navidad, uno de los servidores físicos principales del clúster de una tienda sufrió una avería en la fuente de poder y se apagó en seco con 40 pods corriendo adentro.

Solución de Ingeniería Aplicada:

El Control Plane de Kubernetes detectó la falta de señal del kubelet en 40 segundos (`node.kubernetes.io/unreachable`). Automáticamente comenzó a crear y reprogramar los 40 pods en los otros 5 nodos del clúster.

Fichas Nemotécnicas de Conceptos Clave

Glosario rápido para recordar los términos fundamentales de la lección.

Pod

La unidad de computación más pequeña y básica desplegable en Kubernetes, que encapsula uno o más contenedores.

Control Plane

El cerebro maestro del clúster (incluye api-server, etcd, scheduler y controller-manager) que toma decisiones globales.

Kubelet

Agente que se ejecuta en cada nodo de trabajo (Worker Node) para asegurarse de que los contenedores descritos en los Pods estén corriendo y sanos.

Autoevaluación Rápida3 preguntas

¿Qué es Kubernetes (K8s) y cómo Orquesta Contenedores?

Selecciona una opción para autoevaluarte al instante. La respuesta se califica de inmediato.

Aciertos: 0 / 3
1

¿Cuál es la unidad atómica mínima de despliegue que gestiona Kubernetes?

2

¿Qué ocurre en Kubernetes si un contenedor colapsa o un servidor físico se apaga repentinamente?

3

¿Para qué sirve el componente 'Service' en Kubernetes?

Preguntas Frecuentes (FAQ)

¿Cuál es la diferencia entre Docker Swarm y Kubernetes?

Docker Swarm es el orquestador nativo de Docker: es extremadamente simple y fácil de configurar para clústeres pequeños de pocas máquinas. Kubernetes es inmensamente más potente, flexible y complejo, convirtiéndose en el estándar universal de facto adoptado por toda la industria para arquitecturas multinube a gran escala.

¿Qué es Helm en el ecosistema de Kubernetes?

Helm es el gestor de paquetes de Kubernetes (equivalente a apt o npm pero para K8s). Permite instalar aplicaciones complejas completas (como un clúster de PostgreSQL, Redis o WordPress con todos sus Deployments, Services y volúmenes) ejecutando un solo comando: `helm install mi-bd bitnami/postgresql`.

Temas relacionados:#DevOps#Kubernetes#Docker#Contenedores#Cloud Native#Linux