docker compose 集群部署如何持久化内部资源与规则、新节点启动加入集群等问题

环境

咨询问题

  1. 按照上述单机多2节点组成是集群+负载均衡是可行的,但是如果另外一台服务器也进行了docker 部署,如何才能加入到之前的集群中?目前对于这块比较懵
  2. 之前单节点docker 部署的时候,通过映射 /opt/emqx/data 文件夹到宿主机,可以实现资源、规则数据持久化,避免了重启(删除)容器后找不到规则、资源问题,如果进行集群部署后,应该如何完成数据持久化(非消息数据)

请教下,有没有相关指导手册,或者有相关经验的小伙伴能帮忙解惑。 :pray:

你好,你在 docker-compose-emqx-cluster.yaml 中新增一个 emqx3 就可以了,如果是单机部署多个节点,ports 部分保证端口不要与另外两个节点冲突即可,类似这样:

  emqx3:
    <<: *default-emqx
    container_name: node3.emqx.io
    environment:
      - "EMQX_HOST=node3.emqx.io"
    ports:
      - "18080:18083"
      - "8880:8083"
      - "1880:1883"
    networks:
      emqx_bridge:
        aliases:
        - node3.emqx.io

然后在 services 部分加上这个 emqx3:

services:
  haproxy:
    container_name: haproxy
    image: haproxy:2.4
    depends_on:
      - emqx1
      - emqx2
      - emqx3

感谢回复,你这边说是新增一个emqx3 这样运行起来的还是单机多节点吧?和之前已经部署的集群么有关系,完全是一个新的集群?
我目前的想法是如果2台服务器,一台已经 通过 docker-compose-emqx-cluster.yaml 启动了集群,有2个emqx节点以及haproxy 的负载均衡,后面另外一台也想创建节点,也允许 docker-compose-emqx-cluster.yaml,这个新建的节点如何加入到之前的集群,而非在新建一个集群?

这样的话建议你使用 Kubernetes 来部署。

1 个赞