在同一台主机上安装2个Consul的客户端代理(分离集群)

Install 2 Consul's client agents (separated clusters) on the same host

我在不同的主机上有 2 个不同的 HashiCorp Consul 集群(我们称它们为集群 A 和集群 B)运行。

我的 Python 应用程序 运行 在我已经安装在配置为集群 A 的 1 个客户端代理上的主机上,我希望我的应用程序也能够向集群 B 发送请求(不知何故区分这两个代理)

是否可以在同一台主机上安装第二个客户端代理(配置到群集 B)?如果可以,该怎么做? 我是否只需要更改为不同的端口? 找不到该用例的文档。

任何可能的解决方案都会有所帮助,谢谢!

Consul 允许您为代理配置端口,这样它们就不会在单个主机上发生冲突。我能够在名为的文件中这样做:

consul.json

含内容:

{ 
  "ports": { 
    "dns": 9600,
    "http":9500,
    "serf_lan":9301,
    "serf_wan": 9401,
    "server":9300,
    "grpc":9502
  } 
}

然后我使用以下命令启动代理:

consul agent -dev -bind 127.0.0.1 --config-file consul.json

然后我在同一台机器上通过命令行工具看到了两个代理 ps x(输出缩写):

7510 ... consul agent -dev -bind 127.0.0.1
7780 ... consul agent -dev -bind 127.0.0.1 --config-file consul.json

最后,我使用 --http-addr= 指定的选项 here 与非默认端口代理通信,并将它们聚集在同一主机上,看看是否可行,确实是:

[vagrant@localhost ~]$ consul members
Node                       Address         Status  Type    Build   Protocol  DC   Segment
localhost.localdomain      127.0.0.1:8301  alive   server  1.10.2  2         dc1  <all>
localhost.localdomain.dc1  127.0.0.1:9401  alive   server  1.10.2  2         dc1  <all>

因此,我相当有信心您可以 运行 同一主机上的两个代理,并在每个代理的配置文件中进行适当的设置(或者在一个代理上使用默认值,在另一个代理上使用配置文件) .