我无法理解分离服务发现服务器的需求,而我们可以通过任何协议将从节点注册到从节点启动时的主节点。托管另一项服务对我来说似乎是多余的。
答案 0 :(得分:4)
Docker Swarm用于创建运行Docker的主机群集,并在群集中安排容器 它不包括service discovery,它由后端服务提供,例如etcd,consul或zookeeper。
- 第一个问题:服务注册和发现是基础设施问题,而不是应用程序问题。
- 第二个问题:当基础架构和应用程序实现是相互不可知的时,实现服务注册和发现是很困难的。
DockerCon使用“Docker Stack”来区分this morning (Nov. 16th, 2015):
(来自@laurelcomics的图片)
Docker网络通过支持具有可插入基础设施组件的接口(DNS)来解决这些问题,这些组件遵循通用的KV接口。
您可以看到consul.io用于:
getaddrinfo ENOTFOUN
D”这意味着:
(Easy routing and service discovery with Docker, Consul and nginx撰写的“Ladislav Gazo”文章中的图片
目标是在自己的容器中隔离基础架构关注点(发现服务),与开发工具关注点(Swarm)分开。