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实例

