放置单独的服务发现并将其集成到Docker Swarm中的集群计算机之间有什么区别

我在理解分离的服务发现服务器的需求时遇到了问题,尽管我们可以通过任何协议在从节点启动时将从节点注册到主节点.托管另一个服务对我来说似乎是多余的.
最佳答案
这里有Docker Swarm可以创建一个运行Docker的主机集群,并在该集群中调度容器.
它不包括service discovery,后者是由后端服务(例如etcd,领事或动物园管理员)提供的.

  • The first problem: service registration and discovery is an infrastructure concern, not an application concern.
  • The second problem: implementing service registration and discovery when infrastructure and application implementation are mutually agnostic is tough.

DockerCon通过“ Docker Stack”使区分清楚地明确了this morning (Nov. 16th, 2015)

enter image description here
(来自@laurelcomics的图形)

Docker networking solves these problems by backing an interface (DNS) with pluggable infrastructure components that adhere to a common KV interface.

您可以看到consul.io用于:

>“ Easy routing and service discovery with Docker, Consul and nginx
>“ Docker Overlay Networks: That was Easy
>“ Docker DNS getaddrinfo ENOTFOUND

这意味着:

> Consul是一个KV(键/值)存储库,可以将其插入Swarm以管理服务发现方面.
> Swarm是访问层,通常是包含允许其他人实际访问您的服务的网关或路由组件的层.

https://cdn-images-1.medium.com/max/800/1*aQpT7eAmwhWItNuIi9PXFw.png

(图片来自Ladislav Gazo撰写的“ Easy routing and service discovery with Docker, Consul and nginx”文章)

目标是在自己的容器中隔离基础设施问题(发现服务),与开发工具问题(Swarm)分开.

转载注明原文:放置单独的服务发现并将其集成到Docker Swarm中的集群计算机之间有什么区别 - 代码日志