使用Azure容器服务dynamic启动容器

我正试图弄清楚如何转移实现内部部署的企业应用程序,以便能够在Microsoft Azure容器服务产品Azure中运行。

目前,我们的应用程序是作为Windows服务运行的,主服务进程本质上充当一个subprocess的N个实例的命令和控制模块,每个subprocess都是一个长期运行的有状态的服务。 这些subprocess目前是作为常规的.Net控制台应用程序来实现的,每个应用程序连接到一个不同的实时通讯端点,并对来自该连接的事件作出反应。 我们目前的操作方式是主服务收到一条消息,应该启动这些subprocess之一,然后生成该subprocess的一个实例,并将任何特定于实例的configuration值作为命令行parameter passing。 主stream程然后监视和监视subprocess; 它目前还处理向孩子分发消息和事件,尽pipe在将来这可能会被使用具有某种风味的消息总线所取代。

在我看来,我应该能够通过将subprocess或类似的东西打包成一个Docker镜像来实现同样的目标。 当前的命令行参数会转化为环境variables。 我很难确定我将如何处理编排,以类似的方式按需要启动这些子stream程。

我想利用现在可用的托pipeKubernetes服务的优势,来处理在集群中分配这些subprocess映像的后勤和扩展 – 根据使用情况,我可能会有大量不同的后端需要的图像。 在部署时,我不知道可能需要多less个subprocess,并且可以随时启动和停止。 我所看到的大多数例子似乎暗示部署基本是静态的; 他们可能会缩放一个图像的多个副本,但这些图像是相同的,而我试图做的每个图像将被传递不同的每个实例的configuration。

我想我可以用暴露web服务或订阅事件馈送/服务总线的应用程序replace当前的命令和控制Windows服务,然后将shell命令提供给kubectl以按需configuration启动必要的映像,但是这似乎很脆弱,很多工作。 必须有更好的方法来满足这种用例,对吗?