随后的文本摘录了《 DevOps 2.1 Toolkit:Docker Swarm》一书中“ Swarm集群内部的服务发现”一章。
群集群中的服务发现
旧的(独立的)Swarm需要服务注册表,以便其所有管理器都可以具有相同的群集状态视图。 当实例化旧的Swarm节点时,我们必须指定服务注册表的地址。 但是,如果您查看新Swarm的设置说明(Docker 1.12中引入了Swarm Mode),您会注意到,除了Docker Engines,我们什么都不需要。 您将找不到任何提及外部服务注册表或键值存储的内容。
这是否意味着Swarm不需要服务发现? 恰恰相反。 对服务发现的需求与以往一样强烈,因此Docker决定将其纳入Docker Engine中。 就像Swarm一样,它被捆绑在里面。 从本质上讲,内部过程仍然与独立Swarm所使用的过程非常相似,只是运动部件较少。 Docker Engine现在充当Swarm管理器,Swarm工作器和服务注册表。
将所有部件捆绑在发动机内的决定引起了不同的反应。 有人认为这样的决定会产生过多的耦合,并增加Docker Engine的不稳定程度。 其他人则认为,这种捆绑包使发动机更坚固,并为新的可能性打开了大门。 双方都有有效的论点,但我更倾向于后面一组的意见。 Docker Swarm Mode是向前