NATS 5: 使用 docker swarm 建立 nats 集群

本文档详细介绍了如何在Docker Swarm上搭建NATS集群,包括无TLS和有TLS的配置。首先建立docker swarm和overly network,然后使用docker-compose文件部署nats集群,接着配置TLS并更新route证书。最后,展示了如何检查集群状态,并提供了关闭docker swarm的步骤。
摘要由CSDN通过智能技术生成

建立 docker swarm

  • 参考 “多台服务器上利用 Docker Swarm 建立 RabbitMQ 集群” 上同一章节

建立 overly network

  • 需要利用 overly network 的自动 DNS 功能
    $ docker network create -d overlay nats-cluster
    

使用 docker-compose 文件在 docker swarm 上建立nats集群 (无TLS)

  • swarm.conf 如下,必须在每个节点的 ~/nats/nats-tls-cluster/swarm.conf 位置。注意这里集群的地址用的是域名,就是下面 yml 文件中 service 下面的 nats1, nats2, nats3。
    http_port = 8222
    cluster {
      listen = 6222
      routes = [
        nats://nats1:6222
        nats://nats2:6222
        nats://nats3:6222
      ]
    }
    
  • docker-compose-swarm.yml 如下:
    1. nats1, nats2, nats3 节点的客户端连接端口(容器中的4222)分别暴露在 nats-cluster 的4221, 4222, 4223 端口。
    2. 容器的监听端口8222也类似暴露。
    version: "3"
    services:
      nats1:
        image: nats:latest
        hostname: nats1
        command: "-c /swarm.conf"
        volumes:
          - "~/nats/nats-tls-cluster/swarm.conf:/swarm.conf"
        ports:
          - "4221:4222"
          - "8221:8222"
      nats2:
        image: nats:latest
        hostname: nats2
        command: "-c /swarm.conf"
        volumes:
          - "~/nats/nats-tls-cluster/swarm.conf:/swarm.conf"
        ports:
          - "4222:4222"
          - "8222:8222"
      nats3:
        image: nats:latest
        hostname: nats3
        command: "-c /swarm.conf"
        volumes:
          - "~/nats/nats-tls-cluster/swarm.conf:/swarm.conf"
        ports:
          - "4223:4222"
          - "8223:8222"
    networks:
      default:
        external:
          name: nats-cluster
    
  • 现在默认在当前目录下有docker-compose-swarm.yml文件,在每个服务器上也有volumes中需要的swarm.conf文件:
    $ docker stack deploy --compose-file docker-compose-swarm.yml nats
    Creating service nats_nats1
    Creating service nats_nats2
    Creating service nats_nats3
    
  • 现在已经成功在docker swarm上启动了nats集群,可以使用docker命令查看一下部署情况:
    $ docker service ls
    ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
    repl3antbepm        nats_nats1          replicated          1/1                 nats:latest         *:4221->4222/tcp, *:8221->8222/tcp
    b35tfh7xqzka        nats_nats2          repli
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值