La orquestación de contenedores se ha convertido en una pieza fundamental para el despliegue y la gestión de aplicaciones escalables en la nube. Kubernetes es, sin duda, el líder indiscutible en este ámbito, y Amazon Elastic Kubernetes Service (EKS) ofrece una forma gestionada de ejecutar clústeres de Kubernetes en AWS. Dentro de EKS, la eficiencia y la optimización de costes son preocupaciones constantes, y aquí es donde entra en juego una característica clave: EKS Auto Mode. EKS Auto Mode se anunció en la última edición del AWS re:Invent.
Entendiendo EKS Auto Mode
EKS Auto Mode es una característica relativamente nueva diseñada para simplificar y optimizar la gestión de los nodos (instancias EC2) de un clúster de EKS, particularmente cuando se utiliza Karpenter como aprovisionador de nodos.
Para entender EKS Auto Mode, primero debemos tener claro el papel de Karpenter. Tradicionalmente, la gestión de la capacidad en Kubernetes implicaba el uso de herramientas como Cluster Autoscaler, que escalaba los grupos de nodos (Node Groups) predefinidos. Karpenter, en cambio, es un aprovisionador de nodos de Kubernetes de código abierto que está diseñado para lanzar el tipo de instancia EC2 más adecuado para tus pods en cuestión de segundos, optimizando la utilización de recursos y los costes. A diferencia de Cluster Autoscaler, Karpenter no se basa en grupos de nodos predefinidos, sino que aprovisiona directamente las instancias EC2 basándose en los requisitos de los pods pendientes.
EKS Auto Mode funciona en conjunto con Karpenter para proporcionar una experiencia aún más optimizada y «sin servidor» para la gestión de la infraestructura subyacente de EKS. En esencia, EKS Auto Mode está diseñado para usuarios que buscan aprovechar al máximo los beneficios de Kubernetes y EKS (Amazon Elastic Kubernetes Service), sin la complejidad que a menudo conlleva su gestión.
Si tu objetivo es minimizar la carga operativa relacionada con tareas como actualizaciones, instalación y mantenimiento fundamental de la plataforma (incluyendo autoescalado, equilibrio de carga y almacenamiento), EKS Auto Mode es la solución ideal.
¿Cuál es la diferencia entre EKS Auto Mode y Karpenter de código abierto?
EKS Auto Mode es un conjunto de características diseñadas para simplificar la gestión de clústeres de Kubernetes en producción. Una de sus principales ventajas es la integración y gestión completa del autoescalado de Karpenter.
En esencia, la diferencia clave radica en la carga operativa. Con EKS Auto Mode, te olvidas de gestionar el despliegue, escalado y actualización de los módulos de Karpenter. AWS se encarga de todo.
Más allá de esa conveniencia operativa, el funcionamiento es muy similar. Todas las demás características de Karpenter, como la gestión de NodeClasses y NodePools, funcionan exactamente igual que si estuvieras utilizando la versión de código abierto. En resumen, EKS Auto Mode ofrece los beneficios de Karpenter sin la sobrecarga de su mantenimiento directo.


Arquitectura y flujo de trabajo técnico de EKS Auto Mode
Para comprender mejor cómo EKS Auto Mode simplifica la operación, es útil visualizar su arquitectura y el flujo de trabajo cuando un clúster está configurado para usarlo.
En un entorno EKS tradicional, sin EKS Auto Mode, la configuración y el despliegue de Karpenter requieren que el equipo de operaciones instale el controlador de Karpenter en el clúster, configure los roles de IAM necesarios, y defina los NodePools o NodeClasses de Karpenter que dictan qué tipos de instancias EC2 se pueden aprovisionar.
Con EKS Automode, este proceso se abstrae y automatiza:
Activación de EKS Auto Mode: Cuando creas o actualizas un clúster EKS para usar Auto Mode (típicamente a través de la consola de AWS, la AWS CLI o CloudFormation), Amazon Web Services se encarga de la instalación y configuración inicial de Karpenter en tu clúster. Esto incluye el despliegue del controlador de Karpenter y la configuración de los permisos de IAM necesarios para que Karpenter interactúe con los servicios de AWS (como EC2 para lanzar instancias).
Detección de pods pendientes: El controlador de Karpenter, ahora gestionado por EKS Auto Mode, monitoriza continuamente el clúster en busca de pods pendientes. Estos son pods que no pueden ser programados en los nodos existentes porque no hay suficientes recursos (CPU, memoria) o porque los requisitos del pod (como etiquetas, taints o tolerancias) no se cumplen.
Aprovisionamiento inteligente de nodos: Cuando Karpenter detecta pods pendientes, en lugar de depender de NodeGroups predefinidos, evalúa directamente los requisitos de esos pods (tipos de instancia preferidos, requisitos de CPU/memoria, arquitectura, etc.). Basándose en esta evaluación y en la política de costes configurada por defecto o a través de NodeClasses/NodePools (que, si bien existen, Automode simplifica su gestión inicial), Karpenter selecciona la instancia EC2 más adecuada y rentable disponible en AWS. Esto puede incluir el uso de instancias spot para optimizaciones de costes significativas.
Lanzamiento y registro de nodos: Karpenter, actuando en nombre del clúster EKS, solicita a EC2 que lance la instancia seleccionada. Una vez que la instancia se aprovisiona y se une al clúster EKS, los pods pendientes se programan en ella. Este proceso está altamente optimizado para la velocidad.
Desaprovisionamiento de nodos: EKS Auto Mode también gestiona la optimización continua y el desaprovisionamiento de nodos infrautilizados. Karpenter monitorea la utilización de los nodos y, si un nodo ya no es necesario o sus pods pueden reubicarse de manera más eficiente, se encarga de drenarlo y terminar la instancia EC2, minimizando así los costes.
¿Para qué sirve EKS Automode?
El propósito principal de EKS Auto Mode es simplificar drásticamente la gestión de la infraestructura de los nodos en EKS y mejorar la eficiencia operativa y de costes. Esto lo logra de varias maneras:
- Aprovisionamiento de nodos sin esfuerzo: Con EKS Auto Mode, los usuarios se abstraen de la complejidad de configurar manualmente los perfiles de aprovisionamiento de Karpenter. EKS Auto Mode puede autoconfigurar Karpenter para que sea el aprovisionador de nodos predeterminado en el clúster, detectando automáticamente los pods pendientes y lanzando las instancias EC2 necesarias.
- Optimización de costes mejorada: Al integrar estrechamente con Karpenter, EKS Auto Mode asegura que los recursos se aprovisionen de forma más granular y eficiente. Karpenter es conocido por su capacidad de elegir las instancias más económicas y adecuadas (incluyendo Spot Instances cuando sea posible), y EKS Auto Mode facilita la implementación de esta estrategia sin una configuración manual exhaustiva. Esto puede llevar a reducciones significativas en los costes de infraestructura.
- Mayor agilidad y escalabilidad: Al automatizar el aprovisionamiento de nodos, EKS Auto Mode permite que las aplicaciones escalen de manera más fluida y rápida en respuesta a la demanda. No hay necesidad de preaprovisionar grupos de nodos excesivos, ya que Karpenter (gestionado por Automode) reaccionará dinámicamente.
- Experiencia «Sin Servidor» para los nodos: Aunque EKS aún requiere instancias EC2 subyacentes, EKS Auto Mode, en combinación con Karpenter, acerca la experiencia de gestión de los nodos a un modelo «sin servidor». Los operadores pueden centrarse en la definición de sus aplicaciones y sus requisitos de recursos, dejando la orquestación de la infraestructura de los nodos a EKS Auto Mode y Karpenter.
- Simplificación de la Configuración: Reduce la cantidad de configuración manual necesaria para empezar a usar Karpenter y optimizar su funcionamiento. Esto es especialmente beneficioso para equipos que buscan reducir la carga operativa.
¿Quién se beneficia de EKS Auto Mode?
EKS Auto Mode es particularmente útil para:
- Equipos que buscan maximizar la eficiencia de costes en sus clústeres EKS.
- Organizaciones que desean simplificar la gestión de la infraestructura y reducir la carga operativa de sus equipos de DevOps.
- Cualquiera que ya esté utilizando o planeando usar Karpenter para el aprovisionamiento de nodos en EKS y quiera optimizar aún más su implementación.
- Empresas con cargas de trabajo muy dinámicas que requieren un escalado rápido y eficiente.
Conclusión sobre EKS Auto Mode
En resumen, EKS Auto Mode representa un paso adelante en la simplificación y optimización de la gestión de la infraestructura en Amazon EKS. Al aprovechar las capacidades de Karpenter, permite a los usuarios concentrarse más en el desarrollo y despliegue de sus aplicaciones, dejando que el aprovisionamiento inteligente y eficiente de los nodos sea manejado de forma automática. Es una característica que acerca la experiencia de Kubernetes en AWS a un modelo verdaderamente elástico y optimizado.