De ECS a EKS: lecciones prácticas de migración
En la vida de todo ingeniero llega un momento en que cambia de herramientas en la nube y piensa: "¿Tan malo puede ser?". Para cada vez más gente, ese momento llega al pasar de AWS ECS (Elastic Container Service) a EKS (Elastic Kubernetes Service). Suena a evolución natural, ya que ambos son servicios de orquestación de contenedores bajo el paraguas de AWS. ¿Qué podría salir mal?
Pues muchas cosas. Y también... muchas salen bien, que es la paradoja de Kubernetes.
La luna de miel: sueños en scripts con Terraform
Empiezas con buenas intenciones. En medio de un hilo de Reddit lleno de batallitas de Kubernetes, un usuario lo resumió a la perfección:
"Lo tengo todo en scripts de Terraform para que sea reproducible, pero arrancar un clúster entero nuevo me parece bastante pesado para una actualización de versión menor."
Exacto, y ahí empieza todo. Te sientes organizado, armado con infraestructura como código, listo para conquistar el mundo. Los tiempos de ECS estaban bien, quizá demasiado bien, porque abstraían gran parte de los detalles sucios. Al pasar a EKS ganas visibilidad y control, pero también abres una caja de Pandora de YAML, CRDs y estados misteriosos.
De la claridad al caos: cuando K8s contraataca
Otro comentarista soltó esta joya:
"K8s me ha ayudado a desarrollar el carácter."
Es más un mecanismo de defensa que un cumplido, y aun así es muy real. Kubernetes despliega tu aplicación y, por el camino, pone a prueba tu paciencia, tu comprensión de los sistemas distribuidos y, a veces, tu identidad.
Una actualización del clúster se tuerce y de repente te encuentras con 78 pods en el limbo de "pending", sin logs ni eventos, solo sensaciones. Como dijo un usuario con ironía: "Un pod no puede dejar de responder si está en pending". Técnicamente cierto, y emocionalmente devastador.
El atractivo de EKS: estabilidad dentro del caos
Aun así, a pesar del drama, muchos ingenieros prefieren EKS. Un usuario intervino para decir:
"EKS te va a hacer la vida más fácil ☺️ A mí igual (de ECS a EKS)."
Eso es lo más loco. Una vez superas el hartazgo de YAML, la rabia con los charts de Helm y las pesadillas de kubectl describe pod, EKS ofrece algo que ECS no tiene: un patio de juegos con poder de verdad.
En ECS estás encajonado en la visión simplificada de los contenedores que tiene AWS. En EKS montas tu propio espectáculo, con grupos de nodos, autoescaladores, service meshes y más. Es AWS diciendo: "Aquí tienes Kubernetes. Intenta no hacerte daño".
El presupuesto de pelo perdido: lo que cuestan de verdad las actualizaciones
Ni siquiera las actualizaciones menores son menores. Los usuarios bromeaban con que las actualizaciones del clúster son menos una "actualización" y más una "experiencia espiritual". Alguien le preguntó a otro si le quedaba algo de pelo, y es una pregunta justa.
Y luego está el sueño. Un comentarista respondió "¿Qué sueño?", como si Kubernetes le estuviera robando activamente los ciclos REM, y a veces lo hace. Un Persistent Volume Claim atascado durante la actualización de un pool de nodos puede parecer una broma cósmica, solo que tú no te ríes. Estás recargando la página de estado cada 10 segundos.
Humor de Kubernetes: dolor, pero con gracia
Lo que tiene de especial la comunidad de Kubernetes es el humor negro compartido. Un usuario respondió a un AMA serio sobre actualizaciones con:
"¿Dio etcd su consentimiento para este cambio?"
Ese es el tipo de humor seco que solo aprecia la gente de K8s. Otro se sumó con:
"Hubo quórum, pero no todas las partes estaban de acuerdo."
Esta mezcla de precisión técnica y agotamiento emocional es lo que hace tan rico el viaje a EKS. Sufres, pero no estás solo. Depuras, y luego haces memes sobre ello.
¿Qué hace que merezca la pena?
EKS merece la pena. A pesar de la dura curva de aprendizaje, el control y la flexibilidad que te da Kubernetes no tienen rival. Puede que ECS te hiciera la vida más fácil a corto plazo, pero EKS abre la puerta a una madurez cloud native real. Puedes adoptar GitOps, hacer despliegues sin tiempo de inactividad, escalar con granularidad y hacerlo todo de formas para las que ECS simplemente no está pensado.
Uno de los mejores consejos vino de un usuario que lo explicó sin rodeos:
"La configuración del clúster la mantienes en Terraform y todo lo de k8s fuera de Terraform. Sinceramente, las actualizaciones no suelen dar problemas. La 1.24 fue gorda. Depende de qué cosas heredadas tengas en marcha."
Dicho de otro modo, planifica tus límites. Ten claro qué va en Terraform y qué va en tus manifiestos de Kubernetes, y siempre, siempre, ten claro a qué versión estás actualizando.
Reflexiones finales: bienvenido al club
Pasar de ECS a EKS es como dejar de conducir un Toyota Camry para construirte tu propio todoterreno. El Camry era fiable, aunque un poco aburrido. Ahora tienes el control y llevas las cosas al límite, pero también tendrás que cambiar tú mismo las ruedas pinchadas por el camino.
Kubernetes pondrá a prueba tu paciencia, te hará cuestionar tus decisiones y de vez en cuando te obligará a convertirte en un mago del YAML a las 2 de la madrugada. Pero también te enseñará cómo funcionan por dentro los sistemas distribuidos, y ese tipo de poder compensa el dolor.
Así que bienvenido al mundo maravillosamente caótico de Kubernetes. Vas a odiarlo y luego, de alguna manera, no vas a querer irte nunca.