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

问题描述 投票:1回答:1

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

docker service scale serviceName=num_of_replicas

我们以运行Web API为例。我真的不知道在这种情况下如何扩展可以提供帮助。托管Web API的一台计算机可以以最大功率提供服务。在其中使用多个容器无助于增加最大功率。使用Web API的请求处理管道,只要服务器有足够的资源(CPU,RAM),一台服务器就可以同时独立处理多个请求。因此,在这种情况下,我们不需要使用docker服务扩展的多个(不必要的)任务。

我能看到的唯一好处是,与同一服务器(容器)提供的所有请求相比,docker服务扩展可以在任务(容器)之间提供更好的隔离。

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

docker docker-swarm docker-container
1个回答
0
投票

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

这实际上取决于实施。一些非有效的实现可能只使用单个进程/线程/ cpu,并且扩展有助于它们的性能。

另一个好处是:在单个节点上进行扩展也有助于提高可用性。对于不可恢复的错误,内存不足问题,...总是存在小的非零机会,这可能会阻止单个容器。因此,在编排调度程序重启容器之前会有停机时间。

© www.soinside.com 2019 - 2024. All rights reserved.