环境
咨询问题
- 按照上述单机多2节点组成是集群+负载均衡是可行的,但是如果另外一台服务器也进行了docker 部署,如何才能加入到之前的集群中?目前对于这块比较懵
- 之前单节点docker 部署的时候,通过映射 /opt/emqx/data 文件夹到宿主机,可以实现资源、规则数据持久化,避免了重启(删除)容器后找不到规则、资源问题,如果进行集群部署后,应该如何完成数据持久化(非消息数据)
请教下,有没有相关指导手册,或者有相关经验的小伙伴能帮忙解惑。
t1ger
2
你好,你在 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,这个新建的节点如何加入到之前的集群,而非在新建一个集群?
t1ger
4
这样的话建议你使用 Kubernetes 来部署。
1 个赞