1,配置环境变量
MY_POD_NAME:当前Pod的名称
RABBITMQ_ERLANG_COOKIE:设置Erlang Cookie用于节点间通信安全验证,值来自/nfs/rabbitmq/lib/.erlang.cookie文件内容
RABBITMQ_NODENAME:根据Pod名称动态生成了RabbitMQ节点的名称

2,配置postStart函数,在Pod容器启动后执行的命令:脚本主要用于在RabbitMQ容器启动后,配置DNS,然后等待RabbitMQ服务启动并健康检查,最后判断并处理节点是否已加入集群的情况
lifecycle: postStart: exec: command: - /bin/sh - -c - > if [ -z "$(grep rabbitmq /etc/resolv.conf)" ]; then sed "s/^search \([^ ]\+\)/search rabbitmq.\1 \1/" /etc/resolv.conf > /etc/resolv.conf.new; cat /etc/resolv.conf.new > /etc/resolv.conf; rm /etc/resolv.conf.new; fi; until rabbitmqctl node_health_check; do sleep 1; done; if [ -z "$(rabbitmqctl cluster_status | grep rabbitmq-0)" ]; then touch /gotit rabbitmqctl stop_app; rabbitmqctl reset; rabbitmqctl join_cluster rabbit@rabbitmq-0; rabbitmqctl start_app; else touch /notget fi;
特别注意:rabbitmq是服务名称,这个服务包含4369和25672端口号
3,配置service
端口号4369:Erlang Port Mapping Daemon (epmd)端口,用于Erlang节点之间的发现。
端口号25672:Erlang分布服务间通信端口,在RabbitMQ集群配置中用于节点间的通信。

以上配置完成后,可启用多个pods实例

