我是Docker和Consul的新手,我试图了解容器化应用程序如何将Consul用于两者服务注册表和KV配置配置管理("配置&#34 ;)
我的理解就是我能够:
myvm01.example.com
(Ubuntu VM)上调出其中三个Docker-Consul容器(从而形成一个群集/仲裁);然后myvm02.example.com
(另一个Ubuntu VM)。首先,如果其中任何一个看起来像是误解了Docker和Consul(没有Registrator)的正常/正确使用,请首先纠正我!
假设我或多或少是正确的,我最近偶然发现Registrator,现在更加困惑。 Registrator似乎是您的应用程序容器和您的Consul(或您使用的任何注册表)服务器之间的中间人。
在阅读了他们的快速入门教程后,听起来就像你应该做的那样:
myvm01.example.com
我的担忧:
答案 0 :(得分:9)
我的理解是正确还是偏离基础?如果是这样,怎么样?
在我看来,让所有群集/仲裁成员在同一个VM中运行并不是一个好的解决方案。如果你将它用于开发或挖掘或其他东西,那里并不是那么糟糕,你不关心可靠性,但不关心生产。
一旦您的VM死亡,您将通过创建群集失去所有优势。更重要的是,您可以放弃K / V存储中的所有数据,因为您在docker容器中运行Consul服务器,应该另外配置为在运行之间共享配置。
至于其余部分,我认为它和你一样。
添加Registrator实际获得了什么。
从我的角度来看,主要的是,您不必在每个运行的容器中提供Consul Agent的实例。带有运行图像的容器只负责其主要功能,而不是在某处注册。你可以简单地拉一个图像,然后用它运行一个容器,以使它的服务可用,而不需要额外的工作。
我是否仍然可以通过Registrator利用Consul的KV配置服务?
不幸的是,没有。至少,当我们寻找能够进行服务发现和配置管理的东西时,我们找不到以这种方式使用它的解决方案。我们得出结论,Registrator不是K / V商店的代理,仅用于自动化服务发现。所以你必须使用其他一些逻辑来访问consul的K / V商店。
更新:此外,这里有2篇文章:"Automatic Docker Service Announcement with Registrator"和"Automatic container registration with Consul and Registrator",我发现了解服务器发现过程中的Registrator角色非常有用。