【发布时间】:2015-12-21 02:35:10
【问题描述】:
我是 Docker 和 Consul 的新手,我正在尝试了解容器化应用如何将 Consul 用于服务注册表和 KV 对配置管理(“配置”)。
我的理解是我可以:
- 创建一个运行Consul服务器的镜像,比如this;那么
- 在
myvm01.example.com(一个Ubuntu VM)上启动三个Docker-Consul容器(从而形成一个集群/仲裁);那么 - 重构我的应用程序以使用 Consul 并创建一个运行我的应用程序和 Consul 代理的 Docker 映像,代理配置为在启动时加入 3 节点仲裁。在启动时,我的应用程序使用本地 Consul 代理来下拉其所有配置,并存储为 KV 对。它还引入已注册/健康的服务,并使用本地负载平衡工具来平衡与其集成的服务。
- 在
myvm02.example.com(另一个 Ubuntu 虚拟机)上运行我的应用容器。
首先,如果我对 Docker 和 Consul(无注册器)的正常/正确使用有任何误解,请先纠正我!
假设我或多或少是正确的,我最近偶然发现了Registrator,现在更加困惑。 Registrator 似乎是您的应用容器和您的 Consul(或您使用的任何注册表)服务器之间的一些中间人。
阅读他们的快速入门教程后,听起来就像你应该做的是:
- 像以前一样将我的 Consul 集群/仲裁容器部署到
myvm01.example.com - 我没有将我的应用程序“Dockerizing”以直接使用 Consul,而是将其与 Registrator 集成
- 然后我在某处部署一个 Registrator 容器,并将其配置为与 Consul 集成
- 然后我部署我的应用容器。它们与 Registrator 集成,而 Registrator 又与 Consul 集成。
我的担忧:
- 我的理解是正确的还是离谱的?如果有,怎么做?
- 添加 Registrator 实际获得了什么。它似乎(至少在未经训练的人看来)只不过是应用程序和服务注册表之间的一层间接层。
- 我还能通过 Registrator 使用 Consul 的 KV 配置服务吗?
【问题讨论】: