我有一个在Kubernetes环境上运行的RabbitMQ集群。我无权访问容器 shell ,因此我试图从本地容器运行rabbitmqctl(相同的图像)。
这些端口是公开的:
-15672(曝光为32672)
-5671(公开为32671)
-4369(曝光为32369)
-25672(曝光为32256)
正确的cookie在我本地容器上的$ HOME / .erlang.cookie上。
如何指定集群URL和Rabbitmqctl的端口,以便可以从外部访问RabbitMQ集群?
是否有必要暴露其他端口?
因为我在文档中找不到对此的任何引用,所以甚至有可能这样做?
最佳答案
您将要在外部使用相同的端口号公开端口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,仅在某些情况下回答有关堆栈溢出的问题。
关于kubernetes - 如何使用Rabbitmqctl从RabbitMQ Kubernetes集群外部进行访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56570267/