nacos集群部署手册

说明

  • 本文记录的是使用docker在测试环境部署nacos集群的操作记录,供参考

依赖环境

  • docker
  • mysql数据库
  • git

获取nacos-server镜像

  • docker pull nacos/nacos-server:1.2.0

获取nacos-docker编排文件

  • 进入到 /data/docker-relate 这个目录下,没有的话则创建  
  • 执行 git clone https://github.com/nacos-group/nacos-docker.git

新建file目录

  • 由于nacos三节点修改配置后不同步问题,现在修改了nacos的控制台界面,所以程序启动时需要加载修改后的jar包,把 nacos-server.jar 放在这个目录(/data/docker-relate/nacos-docker/file)里,file目录需要自己创建

执行sql

  • 此处需要执行nacos数据库文件,在数据库执行 nacos-mysql.sql 文件

修改配置文件

  • 到 /data/docker-relate/nacos-docker目录 cd env/
  • 修改 nacos-ip.env 文件为下边的内容

    1

    2

    3

    4

    5

    6

    ACOS_SERVERS=xx.xx.xx:8848 xx.xx.xx:8848 xx.xx.xx:8848   ###nacos服务器集群ip地址

    MYSQL_SERVICE_HOST=xx.xx.xx  ### mysqlHost

    MYSQL_SERVICE_DB_NAME=xxxx   ###mysql数据库名称

    MYSQL_SERVICE_PORT=3306      ### mysql数据库端口

    MYSQL_SERVICE_USER=xxxx      ### mysql数据库用户名

    MYSQL_SERVICE_PASSWORD=xxxx  ### mysql数据库密码

  • 到 /data/docker-relate/nacos-docker/example目录,修改 cluster-ip.yaml 中的配置

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    version: "2"

    services:

      nacos:

        image: nacos/nacos-server:1.2.0

        container_name: nacos

        volumes:

          - ./cluster-logs/nacos1:/home/nacos/logs   # 第一台就算是nacos1,第二台就是nacos2...

          - /data/docker-relate/nacos-docker/file:/home/nacos/target #此处不需要改

        ports:

          - "8848:8848"

          - "9555:9555"

        networks:

          - nacos_net

        environment:

          MODE: cluster # 集群模式

          PREFER_HOST_MODE: ip #如果支持主机名可以使用hostname,否则使用ip,默认也是ip

          SPRING_DATASOURCE_PLATFORM: mysql #数据源平台 仅支持mysql或不保存empty

          NACOS_SERVER_IP: xx.xx.xx #多网卡情况下,指定ip或网卡  本台机器的ip

          TOMCAT_ACCESSLOG_ENABLED: 'false'

          NACOS_AUTH_ENABLE: 'true'

        env_file:

          - ../env/nacos-ip.env

        restart: on-failure

     

    networks:

      nacos_net:

        driver: bridge

重复以上操作完成nacos集群配置

配置nginx访问控制台界面,配置供参考

  • 为每台nacos服务配置nginx,用于应用内部集群配置,三台nacos需要配置三个文件

    upstream server_nacos_01 {

      server xx.xx.xx:8848 weight=5;

    }

    server {

      listen 80;

      server_name xxx.xxx.xxx.com;

      access_log      /data/wwwlogs/test-nacos-01.access.log combined;

     

      location / {

        proxy_pass http://server_nacos_01;

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header REMOTE-HOST $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

     

        client_max_body_size    10m;

     

      }

    }

  • 配置统一的域名,用于web访问,由于nacos三节点配置同步问题,upstream里配置一台就可以

    upstream server_nacos {

      server xx.xx.xx:8848 weight=5;

    }

    server {

      listen 80;

      server_name     xxx.xxx.xxx.com;

      access_log      /data/wwwlogs/test-nacos-web.access.log combined;

     

      location / {

        proxy_pass http://server_nacos;

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header REMOTE-HOST $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

     

        client_max_body_size    10m;

     

     }

    }

命令

  • 在/data/docker-relate/nacos-docker目录下使用docker启动nacos集群

    docker-compose -f example/cluster-ip.yaml up -d

  • 停止运行

    docker ps

    docker stop $CONTAINER_ID

官方文档

  • https://nacos.io/zh-cn/docs/quick-start-docker.html
  • https://nacos.io/zh-cn/docs/deployment.html
  • https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html

你可能感兴趣的:(阿里,nacos,nacos-server)