Nunca para de sorprenderme, cada vez que estoy en una consultoria de arquitectura de soluciones o tecnologicas, y los participantes, normalmente un grupo de arquitectos. Hacen una cantidad de preguntas exhaustibas, sobre la inclusion y gestion de Pod en K8.
No “Pods”, No Deployment Sets, No daemon Sets. Solo un pod.
Yo no se si hay alguna jerga interna que yo como consultor todista, que ha aprendido con la documentacion y experiencia no tengo. Y tampoco quiero tener. Pero como dije en una publicacion previa. “Desplegar solo un Pod deberia ser ilegal”. Me parece increible solo el hecho de gestionar una instancia de K8, con multiples aplicaciones, simulando, diseños tradiciones de servidores de aplicaciones.
Kubernetes, no tiene sentido, como servidor de aplicaciones, K8 no es tomcat, no es nginx, no es IIS, etc. Es un ecosistema completo para gestionar multiples instancias y comunicaciones entre diversas aplicaciones.
Y un Pod es la expresion minima de una unidad de trabajo. En su expresion mas minima es simplemente un contenedor.
Un contenedor, sin infraestructura colindante, sin restauracion, sin elasticidad. Es una mera instancia de docker o cualquiera que sea su herramienta de contenedores. Nisiquiera tengo mucho que explicar o decir. La misma documentacion dice que los pods individuales no se deberian usar es una clase base, basicamente abstracta.
Una vez di un curso de GitOps + Cloud Native, y explicando K8, me salte la parte de que los Pods se pueden instanciar, no me gusta, no lo digo. Un estudiante pregunto sobre ello. Y yo le dije que no se podia. Los escuche murmurar. Suspire y con mucho sarcasmo les dije, “Esta bien, voy a ser honesto, los pods si se pueden desplegar individualmente. Sin embargo escrito en rojo en la pagina de la documentacion dice que no se hagan, por sus murmullos entiendo que el horrible lugar donde trabajan, aunque no deberia hablar mal de mi contratante, les permite u obliga a usar pods individuales, dejen de hacerlo y use un Availability Set de 1, ya no los van a llamar a las 1am para reiniciar un pod”. La clase entra en risas frustradas.
Realmente no lo entiendo, por que constantemente esa representacion , por que esas preguntas, por que esa perdida de tiempo, sobre componentes que van a fallar, por que reiniciar un pod? Si un availability set se autodepura? Se escribe igual, hacen lo mismo. Uno con caracteristicas de soporte y despliegue y el otro nada.
En este articulo de opinion , no hay cierre, solo era para drenar mis ideas pero si quisiera cerrar con alguna idea clave.
Mundo por favor, dejen de usar Pods individuales en sus despliegues de aplicaciones en K8.