我有一个在Kubernetes环境上运行的RabbitMQ集群。我无权访问容器外壳,因此我试图从本地容器(相同的图像)运行rabbitmqctl。
这些端口是公开的: -15672(曝光为32672) -5671(公开为32671) -4369(曝光为32369) -25672(公开为32256)
正确的cookie在我本地容器上的$ HOME / .erlang.cookie上。
如何指定集群URL和Rabbitmqctl的端口,以便可以从外部访问RabbitMQ集群?
是否有必要公开其他端口?
由于我在文档中找不到对此的任何引用,是否有可能这样做?
答案 0 :(得分:1)
您将要在外部使用相同的端口号公开端口4369和25672,因为我想不出一种方法来告诉运行rabbitmqctl
的Erlang VM使用不同的端口进行EPMD查找。您还应该在外部使用相同的端口范围公开35672-35682。
由于您使用的是Kubernetes,因此我假设您使用的是长名称。假设在您的容器中,您的节点名称为rabbit@container1.my.org
,可以使用以下命令从外部访问它:
rabbitmqctl -l -n rabbit@container1.my.org
请注意,container1.my.org
必须通过DNS解析为正确的IP地址以连接到该容器。
注意: RabbitMQ团队监视rabbitmq-users
mailing list,并且有时仅在StackOverflow上回答问题。