在Docker Swarm模式下使用副本的主要优势是什么?

20

我对Docker Swarm Mode中的replica实例理解有困难,我了解到它是一项有助于高可用性的功能。

然而,即使为服务定义了1个replica,如果一个节点宕机,Docker也会自动在不同的节点上启动新的任务,从而提供高可用性。

那么,相对于任意服务的1个replica,拥有3个replica实例的优势是什么?我的想法是,有更多的复制实例,Docker在发生故障时在另一个节点上创建新实例所花费的时间更少,这有助于提高性能。这个想法正确吗?

2个回答

25

什么是高可用性?

高可用性的一个目标是在基础设施中消除单点故障。单点故障是技术堆栈中的一个组件,如果不可用,将导致服务中断。


我们以由单个实例组成的副本为例子。现在假设出现了故障。Docker Swarm会注意到服务失败并重新启动它。服务重新启动,但重新启动不是瞬间完成的。假设重启需要5秒钟时间。在这5秒钟内,您的服务将无法使用。这就是单点故障。

如果您有一个由3个实例组成的副本。现在当其中一个实例发生故障(没有一个服务是完美的),Docker Swarm将注意到其中一个实例不可用,并创建一个新的实例。在此期间,您仍然有2个健康的实例来处理请求。对于您的服务用户来说,似乎没有停机时间。此组件不再是单点故障。


0

ROMANARMY的回答非常好,我想提一下复制品可以在不同的节点上,因此如果你的某个服务器崩溃(变得不可用),另一个服务器上的容器(复制品)可以正常运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接