Saltar al contenido
aprendeaws.dev

Módulo 5 · Cómputo: máquinas e instancias/Lección 38

Contenedores a escala: escalado, híbridos y multiclúster

Escalar pods y nodos, correr contenedores en tus propios centros de datos y repartir clústeres para alta disponibilidad y recuperación.

⏱ 14 min

Al terminar podrás

  • →Combinar el escalado de pods y de nodos en EKS y el de servicios en ECS
  • →Explicar EKS Anywhere, ECS Anywhere y EKS en Outposts
  • →Diseñar estrategias multiclúster para alta disponibilidad y DR
  • →Monitorear contenedores con Container Insights

Correr un servicio en contenedores ya lo sabes hacer. El problema llega con la primera campaña: el tráfico se multiplica y alguien tiene que decidir cuántas copias corren y en cuántos servidores caben. Más adelante llegan otras preguntas: correr lo mismo en la planta de producción, o tener un segundo clúster listo en otra región.

Dos capas de escalado

CriterioAmazon ECSAmazon EKS
Más copias de la appService Auto Scaling (Application Auto Scaling) cambia el número deseado de tareasHorizontal Pod Autoscaler (HPA) cambia el número de réplicas
Más servidoresCapacity provider con un grupo de Auto Scaling y managed scalingCluster Autoscaler o Karpenter
Que AWS maneje los servidoresFargate o ECS Managed InstancesFargate o EKS Auto Mode

Con Fargate, la segunda capa desaparece: cada tarea o pod recibe su propia capacidad. Con EC2, necesitas las dos capas conectadas. La base de todo esto está en contenedores y en Auto Scaling.

ECS: escalar el servicio y la capacidad

Service Auto Scaling usa Application Auto Scaling, el mismo motor que escala tablas de DynamoDB o réplicas de Aurora. Admite las mismas políticas que ya conoces: target tracking (por ejemplo, CPU promedio del servicio en 60 % o peticiones por destino del ALB), por pasos, programada y predictiva. Para trabajadores que leen de una cola, escala con una métrica propia de mensajes pendientes por tarea.

Los capacity providers deciden dónde se ubican las tareas. Hay tres tipos, y una estrategia solo puede mezclar proveedores del mismo tipo:

  • FARGATE y FARGATE_SPOT

    Sin servidores. Fargate Spot usa capacidad sobrante con descuento y puede interrumpir la tarea con dos minutos de aviso (una señal SIGTERM).
  • Grupo de Auto Scaling

    Con managed scaling, ECS crea una política de target tracking sobre la métrica CapacityProviderReservation y agrega o quita instancias según lo que piden las tareas.
  • ECS Managed Instances

    Instancias EC2 que AWS elige, parcha y reemplaza por ti. Sirve cuando necesitas GPU o un tipo de instancia específico sin operar el grupo.

La estrategia reparte las tareas con dos números: base (cuántas van primero a un proveedor) y weight (la proporción del resto). Este ejemplo deja dos tareas fijas en Fargate y reparte las demás tres a uno hacia Fargate Spot:

"capacityProviderStrategy": [
  { "capacityProvider": "FARGATE",      "base": 2, "weight": 1 },
  { "capacityProvider": "FARGATE_SPOT", "base": 0, "weight": 3 }
]

EKS: pods, nodos y quién los maneja

  1. 1

    Horizontal Pod Autoscaler

    Mira la CPU, la memoria o una métrica propia y sube o baja las réplicas de un Deployment. Solo crea pods; no crea servidores.
  2. 2

    Pods en Pending

    Si los pods nuevos no caben en ningún nodo, Kubernetes los deja en espera. Esa es la señal para la segunda capa.
  3. 3

    Cluster Autoscaler

    Ajusta la capacidad deseada de grupos de Auto Scaling (los managed node groups). Cada grupo tiene tipos de instancia fijos.
  4. 4

    Karpenter

    Lee qué necesitan los pods pendientes y lanza directo la instancia EC2 del tamaño justo, en menos de un minuto. También consolida: mueve pods y apaga nodos que sobran. Es código abierto y lo operas tú.
  5. 5

    EKS Auto Mode

    AWS opera Karpenter por ti, junto con los balanceadores, el almacenamiento en bloque y la red de los pods. Los nodos son inmutables y se reemplazan como máximo a los 21 días.

Contenedores fuera de la región

Hay cargas que no pueden irse a la nube: latencia con máquinas de planta, datos que la ley obliga a dejar en el país, o hardware que ya pagaste. Las opciones se distinguen por dónde vive el plano de control y qué pasa si se cae el enlace.

OpciónCómo funciona
ECS AnywhereTus servidores se registran en un clúster de ECSEl plano de control está en la región. Usa el launch type EXTERNAL. No admite balanceo de carga del servicio ni red awsvpc: encaja con trabajos que procesan datos y salen hacia afuera
EKS Hybrid NodesTus servidores son nodos de un clúster de EKS en la regiónAWS opera el plano de control. Necesita conexión estable (VPN o Direct Connect). No sirve para sitios que pasan días desconectados
EKS AnywhereKubernetes completo en tu infraestructuraTú operas el clúster entero con las herramientas de EKS. Es la opción para sitios desconectados o con enlace intermitente
EKS en OutpostsRacks de AWS en tu sedeClúster extendido: plano de control en la región. Clúster local: plano de control en el Outpost, sigue operando sin enlace
  • Amazon ECS Anywhere

    Las grúas de AWS manejando contenedores en tu propia bodega.
  • Amazon EKS Anywhere

    Tu propio puerto, con el mismo manual de operación que usa AWS.
  • AWS Outposts

    AWS instala un pedazo del puerto dentro de tu bodega. Más en otras opciones de cómputo.

Varios clústeres para alta disponibilidad y DR

Un clúster de EKS o ECS ya reparte nodos en varias zonas de disponibilidad. Para sobrevivir a la falla de una región, o a un error que rompa el clúster entero, necesitas un segundo clúster. El patrón más común:

  1. 1

    Dos regiones, dos clústeres

    Uno activo y otro pasivo con capacidad mínima (pilot light o warm standby), o ambos activos detrás de Route 53 o Global Accelerator.
  2. 2

    El mismo estado deseado en los dos

    Con GitOps (Argo CD o Flux), el repositorio es la verdad y cada clúster se sincroniza solo. Nadie aplica cambios a mano en uno y olvida el otro.
  3. 3

    Imágenes en las dos regiones

    La replicación de ECR copia cada imagen nueva a otra región o cuenta. Solo replica lo que se sube después de configurarla, y no copia las lifecycle policies.
  4. 4

    Los datos, por separado

    Los contenedores son fáciles de recrear; los datos no. Aurora Global Database, DynamoDB global tables o la replicación de S3 definen tu RPO real. Detalle en replicación y consistencia.
  5. 5

    El cambio de región, ensayado

    Un runbook y un simulacro. Sin eso, el clúster pasivo es una suposición. Ver failover y failback.

ECR también cuida la cadena de suministro: el escaneo básico revisa vulnerabilidades al subir la imagen y el escaneo mejorado, con Amazon Inspector, sigue revisando de forma continua. Las lifecycle policies borran imágenes viejas por antigüedad o por cantidad para que el registro no crezca sin control.

Ver qué pasa: Container Insights

CloudWatch Container Insights recoge métricas y logs de ECS, EKS (también sobre Fargate) y Kubernetes en EC2. La versión con enhanced observability baja hasta el nivel de cada contenedor. En ECS es la que AWS recomienda y se activa con la configuración de cuenta o de clúster containerInsights=enhanced. En EKS se instala con el complemento Amazon CloudWatch Observability, y también hay una variante basada en OpenTelemetry. Así ves qué servicio consume, qué pod se reinicia y en qué nodo. Para una vista de varias cuentas, sigue con observabilidad a escala.

Quiz

Pon a prueba lo que aprendiste

0 de 5 correctas · 5 sin responder

  1. 1.Un clúster de EKS con managed node groups recibe un pico. El HPA crea 30 pods nuevos y 18 quedan en Pending. ¿Qué falta?

  2. 2.Un servicio de ECS en Fargate debe tener siempre 2 tareas estables y usar capacidad con descuento para el resto, porque tolera interrupciones. ¿Qué configuras?

  3. 3.Una mina quiere correr Kubernetes en sus servidores. El enlace satelital se cae durante días. ¿Qué opción encaja?

  4. 4.Una empresa tiene EKS en us-east-1 y quiere recuperarse en us-west-2 en menos de una hora. ¿Qué diseño es el más completo?

  5. 5.El equipo de operaciones necesita ver CPU y memoria de cada contenedor dentro de las tareas de ECS, no solo del servicio. ¿Qué activa?