我正在尝试使用Consul和Registrator来获取各种虚拟机中的微服务,但我认为我并没有得到任何东西。我知道Registrator会自动向Consul注册容器。所以我在想我有一台运行Consul的虚拟机,然后对于每个微服务我都有一台带有Registrator +微服务器的虚拟机。
但是,我无法让Registrator在单独的VM中与Consul代理通信。仔细观察建议的体系结构,似乎我需要在每个VM上使用单独的Consul代理。我明白了吗?如果是这样,为什么? Registrator不应该只能将容器信息转发给任何VM上的Consul代理吗?
另外,我是否需要在具有Consul代理和服务器的VM上运行Registrator?
答案 0 :(得分:6)
您需要在每个提供服务的VM上都有一个consul代理,以便它可以与领事服务器进行通信
这个blog post有很好的信息:
Consul Architecture 为Consul提供服务的每个节点都运行Consul代理。代理负责检查节点上的服务以及节点本身的运行状况。代理与一个或多个Consul服务器通信
Registrator Agent Registrator代理可以根据已发布的端口和ECS任务定义中定义的容器环境变量的元数据自动注册/注销ECS任务或服务的服务
所以2是互补的,需要为你将部署的每个服务(名称)进行部署