docker服务如何真正在一台机器上扩展?

时间:2019-03-16 17:48:17

标签: docker docker-swarm docker-container

我可以理解在多台不同的计算机上进行扩展时的帮助。 但是这里我们只有一台机器(或一台节点)。但是docker仍然支持扩展服务以运行多个任务(每个任务由一个容器提供),如下所示:

docker service scale serviceName=num_of_replicas

让我们以运行Web API为例。真的我不知道在这种情况下扩展有什么帮助。一台托管Web API的机器可以发挥其最大功能。在其中使用多个容器不能帮助增加最大功率。借助Web API的请求处理管道,只要一台服务器具有足够的资源(CPU,RAM),则一台服务器就可以同时独立地处理多个请求。因此,在这种情况下,通过docker服务扩展,我们不需要多个(不必要的)任务。

我在这里看到的唯一好处是,与通过同一台服务器(容器)处理所有请求相比,泊坞窗服务扩展可能在任务(容器)之间提供更好的隔离。

您能否让我知道以这种方式扩展docker服务的其他好处?我上面的假设有什么问题吗?

1 个答案:

答案 0 :(得分:0)

  

在其中使用多个容器无助于提高最大功率。

这确实取决于实现。一些效率不高的实现可能仅使用单个进程/线程/ cpu,而扩展有助于提高其性能。

另一个好处:在单个节点上扩展也将有助于提高可用性。总是有很小的非零机会发生不可恢复的错误,内存不足问题,这可能会使单个容器停止运行。因此,将存在停机时间,直到业务流程调度程序重新启动容器为止。

相关问题