代码之家  ›  专栏  ›  技术社区  ›  dplesa

如何在Openshift上正确设置RabbitMQ

  •  4
  • dplesa  · 技术社区  · 7 年前

    https://hub.docker.com/r/luiscoms/openshift-rabbitmq/

    它运行成功,我可以使用它。我给它添加了一个持久卷。

    例如:

    node           : rabbit@openshift-rabbitmq-11-9b6p7
    home dir       : /var/lib/rabbitmq
    config file(s) : /etc/rabbitmq/rabbitmq.config
    cookie hash    : BsUC9W6z5M26164xPxUTkA==
    log            : tty
    sasl log       : tty
    database dir   : /var/lib/rabbitmq/mnesia/rabbit@openshift-rabbitmq-11-9b6p7
    

    如何将RabbitMq设置为始终使用相同的数据库目录?

    3 回复  |  直到 7 年前
        1
  •  6
  •   PhilipGough    7 年前

    您应该能够设置环境变量 RABBITMQ_MNESIA_DIR oc 工具,例如:

    oc set env dc/my-rabbit RABBITMQ_MNESIA_DIR=/myDir

    oc volume dc/my-rabbit --add --overwrite --name=my-pv-name --mount-path=/myDir

    您需要确保在提供的装载路径上具有正确的r/w访问权限

    编辑:基于评论中的问题的一些其他解决方法

    动态主机名引起的问题可以通过多种方式解决:

    StatefulSet .StatefulSet将提供Pod命名和网络标识符的稳定性,Pod前面必须有无头服务。此功能自Kubernetes 1.9起不再测试,自3.5版起在OpenShift中进行技术预览

    1. 如果statefulset不是选项,则设置Pod的主机名。这可以通过添加环境变量来实现 oc set env dc/example HOSTNAME=example 使主机名为静态和设置 RABBITMQ_NODENAME 同样地做。
        2
  •  1
  •   Edgey    7 年前

    我可以通过设置HOSTNAME环境变量使其工作。OSE通常将该值设置为pod名称,因此每次pod重新启动时它都会更改。通过设置它,pod的主机名在pod重新启动时不会改变。

    oc set env dc/my-rabbit HOSTNAME=some-static-name
    

        3
  •  0
  •   ansd    3 年前

    RabbitMQ Cluster Operator .

    看见 this video 关于如何在OpenShift上部署RabbitMQ。