Excesos con Kubernetes – Dia 21

Kubernetes es una tecnología interesante, basada sobre un concepto moderno llamado contenedores. Que permite empaquetar estados de sistemas en cajas.

La idea de Kubernetes es poder dar gestión, control, automatización, configuración al uso de conjuntos de contenedores para un fin.

Se basa en tener un “plano de control” son estos sistemas orquestadores y monitores que nos van a permitir trabajar con los contenedores. Esta distribución lógica, evidentemente, debe existir sobre infraestructura física. Y lo genial es que los mapas, o archivos de configuración son basados en texto.

Kubernetes permite crear mínima ejecución de cómputo, llamado Pod, una pequeña unidad que permite reutilizar la infraestructura de física donde ejecuta Kubernetes, dándole capacidades a la medida, estos Pods pueden orquestarlos mediante grupos. Crear redes internas, entre otras cosas. Permite crear elasticidad en las soluciones.

Entonces, siendo simplista, Kubernetes nos deja tomar mucha infraestructura física o virtual, agruparla, y ser capaz de desplegar diferentes soluciones a la vez, donde cada solución existe en su propio contexto.

¿Cómo llegamos a los excesos? Bien es fácil, como cualquier tecnología moderna, toma auge, se populariza, y se vuelve un negocio. Se denomina ‘Cloud Native’ el uso masivo de Kubernetes, y tecnologías complementarias, irónicamente, se podría considerar que Kubernetes tiene mayor sentido en infraestructura física y limitada (onpremise).

Las personas que trabajan en tecnología, en sus anteriores reencarnaciones (¿encarnaciones?), seguro trabajaban en religión, porque es muy fácil que las comunidades tecnológicas se vayan al fanatismo, trivialización y quema de brujas.

¿Por qué lo digo? Pues porque cuando sale una nueva tecnología que promete, se crean círculos a favor y en contra respectivamente. Se busca olvidar los fundamentos (uno de los problemas de la IA) y se busca mayor productividad y mayor eficiencia.

Volviendo al punto, ¿qué excesos podría tener Kubernetes? El sobreúso y la sobredimension.

Dos ejemplos muy sencillos

-Sobredimension, si bien, K8 es una tecnología para reutilizar infraestructura física, no es raro ver en la practica, de que cada solución (dígase solución, un servicio o stack de tecnología que se utiliza) se despliega en una instancia K8 con nuevos nodos virtuales para el plano de control, y nuevos nodos virtuales para la ejecución.

Y lo peor, a veces se hace todo eso, para desplegar un Pod. El componente mínimo de cómputo, en K8 (K8 es la abreviación de Kubernetes), un Pod solito, sin arquitectura complementaria, que no tiene ningún tipo de seguridad o control u orquestación. Debería ser ilegal usarlos de esta manera.

Esto en ambos casos es sobredimension.

– Sobre uso: En el caso de sobreúso, es la tendencia, en organizaciones se crean políticas o estándares, que no tienen criterio real, solo busca igualar todo para que sea fácil de controlar o medir, o son estándares de mercado, o son estándares trending. Asi que todas las soluciones deben ser K8

Entonces, cada solución, se vuelve un despliegue aislado de Kubernetes. Quemando incontable dinero básicamente. Esto es superponen en ambientes de nube, de hecho hay una tendencia de startups de Silicon Valley en dejar la nube.

No solo eso, si bien en el punto anterior mencione que muchas soluciones solo despliegan 1 pod. Es porque es la consecuencia de migrar sistemas a la fuerza, o tratar de mover un servidor de aplicaciones clásico a K8, solo porque la organización lo pide.

K8 no es una navaja multiusos, tiene casos específicos, siendo simplista nuevamente, son las aplicaciones efímeras (no base de datos o datalakes) de servicio remoto, o web, con fácil escalabilidad, e interconexión interna

Entonces hay casos que tienen sentido en servidores de aplicaciones comunes, o resellers web, que en K8. Y viceversa.

Esos dos puntos pueden volver tu experiencia con Kubernetes un desastre, algo que se odie con pasión. Y tristemente allí se dirige la industria, a hacer las cosas por moda o popularidad, que por valor.