我正在尝试使用AWS上的Kubernetes运行Rabbitmq.我正在使用正式的Rabbitmq docker容器.每次pod重新启动时,rabbitmq容器都会获得一个新的主机名.我已经为具有可解析的DNS名称的pod设置了一个服务(类型为LoadBalancer).
但是,当我使用EBS使兔子配置/消息/队列在重新启动之间保持持久性时,它会断开:
exception exit: {{failed_to_cluster_with,
['rabbitmq@rabbitmq-deployment-2901855891-nord3'],
"Mnesia could not connect to any nodes."},
{rabbit,start,[normal,[]]}}
in function application_master:init/4 (application_master.erl, line 134)
Run Code Online (Sandbox Code Playgroud)
rabbitmq-deployment-2901855891-nord3是以前的主机名rabbitmq容器.这几乎就像Mnesia保存了旧的主机名: - /
容器的信息如下所示:
Starting broker...
=INFO REPORT==== 25-Apr-2016::12:42:42 ===
node : rabbitmq@rabbitmq-deployment-2770204827-cboj8
home dir : /var/lib/rabbitmq
config file(s) : /etc/rabbitmq/rabbitmq.config
cookie hash : XXXXXXXXXXXXXXXX
log : tty
sasl log : tty
database dir : /var/lib/rabbitmq/mnesia/rabbitmq
Run Code Online (Sandbox Code Playgroud)
我只能将节点名称的第一部分设置为rabbitmq使用RABBITMQ_NODENAME环境变量.
设置RABBITMQ_NODENAME为可解析的DNS名称会破坏:
Can't set short node name!\nPlease check your configuration\n"
设置RABBITMQ_USE_LONGNAME为true …