He dockerizado una aplicación de escritorio heredada. Esta aplicación realiza una representación gráfica intensiva en recursos desde una interfaz de línea de comandos.
Me gustaría ofrecer esta representación como un servicio en una "granja de cómputo", y me preguntaba si Kubernetes podría usarse para este propósito.
Si es así, ¿cómo me aseguraría en Kubernetes de que cada pod solo atienda una solicitud a la vez (esta aplicación consume muchos recursos y probablemente no sea segura para subprocesos)? ¿Debo escribir una aplicación contenedora/invocador de subproceso único en el contenedor y, por lo tanto, serializar las solicitudes? ¿Serían los K8 lo suficientemente inteligentes como para enrutar las solicitudes posteriores a los módulos inactivos en lugar de dejar que se acumulen en un módulo sobrecargado?
Interesante pregunta.
El objeto de servicio predeterminado incorporado junto con kube-proxy enruta las solicitudes a diferentes pods, pero solo lo hace de forma rotativa, lo que no se ajusta a nuestro caso de uso.
Su caso de uso requeriría que se realicen cambios en la configuración del proxy kube durante la configuración del clúster. Este enfoque es tedioso y requerirá que tenga su propia configuración de clúster (no compatible con los servicios en la nube). Como se describe aquí .
La mejor opción sería configurar una malla de servicio como Istio, que proporciona las funciones con poca configuración junto con muchas otras funcionalidades útiles.
A ver si esto ayuda.