用于根据用户操作调配单个容器的容器业务stream程

我很新的Docker业务stream程和pipe理一组容器。 我想build立一个应用程序,当他们运行一个命令时会给用户一个容器。 什么是最好的工具和最好的方法来完成这个?

我打算有一个CoreOS服务器池来运行容器,我想象调度器有一个API,我可以调用创build容器。

我在Nomad,Kubernetes,Docker Swarm等方面所见到的大部分是如何configuration多个容器集群来完成同样的事情。 我希望能够基于用户命令创build一个容器,然后能够与该容器上的API进行通信。 任何人都有这方面的经验?

我会看看Kubernetes + Jobs API (短命)或Deployments (长命)

我不确定你的命令是什么意思,但我会假定它由某种CLI, make-dev触发的某种dev env。

  1. 用户触发make-dev ,它将webhook发送到位于Jobs API前面的应​​用程序,理想的是进行速率限制和/或授权。
  2. 你的应用程序接受命令,理智检查它,然后触发作业/部署请求+ 入口规则 + 服务
  3. Kubernetes将在您的机器上安排它
  4. 您的应用程序将等待pod启动,然后使用唯一标识符(入口规则中的相同内容)返回API的地址,例如devclusters.com/foobar123
  5. 用户现在在该地址访问他们的服务。 Kubernetes内部使用入口和服务将请求路由到您的吊舱

这应该可以很好地扩展,如果你的不同环境使用相同的基本容器映像,它们应该开始真的很快。

插件:如果你想要一个简单的CoreOS + Kubernetes集群加一个UI,请尝试https://coreos.com/tectonic

我打算有一个CoreOS服务器池来运行容器,我想象调度程序有一个API,我可以调用创build容器

kubernetes附带了一个RESTful API,您可以使用它在群集中直接创buildpod(包含一个或多个容器的kubernetes中的工作单元)。

命令行实用程序kubectl也通过api以完全相同的方式与群集进行交互。 目前有一些用golang,Java和Python编写的客户端库,其他人正在帮助与集群通信。

如果您稍后想要更高级别的抽象来pipe理Pod,更新它们并pipe理它们的生命周期,查看其中一个控制器(复制集,复制控制器,部署,statefulset)应该有所帮助。