docker搭建nacos2.x集群

本文详细介绍了如何使用Docker部署Nacos2.0.3集群,包括每个节点的配置、避免端口冲突以及数据持久化使用MySQL的设置。同时,文章还讲解了如何安装Nginx并配置负载均衡,特别是针对Nacos2.x版本的GRPC端口映射,确保集群的高可用性。最后,提供了启动Nginx的命令以及如何通过Nginx访问Nacos控制台。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nacos2.x注意事项

映射端口不可以乱配,因为其默认是根据 8848 + 1000 以及 8848+1001,特别注意如果是在一个机器上模拟集群的话,更需要注意端口冲突问题

image-20220630200552966

先使用单节点测试Mysql 如果出现 no datasource set ,则检查连接与数据库脚本是否导入,所需数据库是否创建,连接无误则重启mysql

说明

  • nacos版本为2.0.3

  • 数据持久化使用了mysql,mysql非docker镜像

  • 三个节点,三台机器

Nacos集群安装

注意点

NACOS_SERVER_IPNACOS_SERVERSMYSQL_SERVICE 等相关需要根据自身情况做调整

第一个节点

docker run \
--name nacos-server-01 -itd \
--privileged=true \
--restart=always \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
-e MODE=cluster \
-e PREFER_HOST_MODE=ip \
-e NACOS_SERVER_IP=10.50.40.1 \
-e NACOS_SERVERS=10.50.40.1:8848,10.50.40.2:8848,10.50.40.3:8848 \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=10.50.40.3 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-e MYSQL_SERVICE_DB_NAME=xx_nacos_dev \
-e TIME_ZONE='Asia/Shanghai' \
-e JVM_XMS=512m \
-e JVM_XMX=512m \
nacos/nacos-server:2.0.3

第二个节点

docker run \
--name nacos-server-02 -itd \
--privileged=true \
--restart=always \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
-e MODE=cluster \
-e PREFER_HOST_MODE=ip \
-e NACOS_SERVER_IP=10.50.40.2 \
-e NACOS_SERVERS=10.50.40.1:8848,10.50.40.2:8848,10.50.40.3:8848 \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=10.50.40.3 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-e MYSQL_SERVICE_DB_NAME=xx_nacos_dev \
-e TIME_ZONE='Asia/Shanghai' \
-e JVM_XMS=512m \
-e JVM_XMX=512m \
nacos/nacos-server:2.0.3

第三个节点

docker run \
--name nacos-server-03 -itd \
--privileged=true \
--restart=always \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
-e MODE=cluster \
-e PREFER_HOST_MODE=ip \
-e NACOS_SERVER_IP=10.50.40.3 \
-e NACOS_SERVERS=10.50.40.1:8848,10.50.40.2:8848,10.50.40.3:8848 \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=10.50.40.3 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=123456 \
-e MYSQL_SERVICE_DB_NAME=xx_nacos_dev \
-e TIME_ZONE='Asia/Shanghai' \
-e JVM_XMS=512m \
-e JVM_XMX=512m \
nacos/nacos-server:2.0.3

安装Nginx配置Nacos集群负载均衡

安装nginx

# 拉取nginx镜像
docker pull nginx
# 启动容器
docker run --name nginx -d -p81:80 -itd nginx

# 创建需要映射的文件宿主机目录
mkdir -p  /usr/local/docker-soft/nginx/conf

mkdir -p  /usr/local/docker-soft/nginx/conf.d

# 文件拷贝 容器>>>宿主机
docker cp nginx:/etc/nginx/nginx.conf /usr/local/docker-soft/nginx/conf/nginx.conf

docker cp nginx:/etc/nginx/conf.d/default.conf /usr/local/docker-soft/nginx/conf.d/default.conf

# 删除容器 (为何要删除,因为我们启动时没有进行数据挂载无法满足nacos集群需求)
docker rm -f nginx

# 更改配置文件,使用upstream负载均衡
# 注意点,判断nacos版本进行选择nginx配置

nginx中nacos2.x集群配置

2.x版本Nacos 需要额外配置grpc端口映射

注意,我这里是conf/目录下的 nginx.config配置,上方命令已将文件拷贝至了宿主机 /usr/local/docker-soft/nginx/conf/nginx.conf

修改nginx.conf文件为如下

主要作用是暴露通信端口与GRPC端口 然后转发到内部Nacos

http {
	# 负载均衡配置
	upstream lb-nocos{
		server 10.50.40.1:8848 weight=1;
		server 10.50.40.2:8848 weight=1;
		server 10.50.40.3:8848 weight=1;
	}
	# nacos服务配置
	server {
            listen       8765;
            server_name  localhost;
	    location / {
	    # 反向代理
	    proxy_pass http://lb-nocos;
            }
	}
}

# nacos的grpc协议配置
stream {
       # 负载均衡配置(TCP长连接配置)
       upstream lb-nocos-tcp{
         server 10.50.40.1:9848 weight=1;
         server 10.50.40.2:9848 weight=1;
         server 10.50.40.3:9848 weight=1;
       }

        server {
          listen 9765;
          proxy_pass lb-nocos-tcp;
        }
}

数据挂载,启动nginx

docker run  --name nginx -d -it \
-p 8765:8765 \
-p 9765:9765 \
-v /usr/local/docker-soft/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /usr/local/docker-soft/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf \
nginx

访问控制台为:http://ip:8765/nacos

搭建 Nacos 集群,可以使用 Docker 进行部署。以下是一些简单的步骤: 1. 安装 DockerDocker Compose:确保你已经在服务器上安装了 DockerDocker Compose。 2. 创建一个目录,用于存放 Nacos 的配置文件和数据。 3. 在该目录下创建一个 `docker-compose.yml` 文件,并添加以下内容: ```yaml version: '3' services: nacos-server-1: image: nacos/nacos-server:latest container_name: nacos-server-1 ports: - "8848:8848" volumes: - ./data/nacos/logs:/home/nacos/logs - ./data/nacos/data:/home/nacos/data environment: - PREFER_HOST_MODE=hostname nacos-server-2: image: nacos/nacos-server:latest container_name: nacos-server-2 ports: - "8849:8848" volumes: - ./data/nacos/logs:/home/nacos/logs - ./data/nacos/data:/home/nacos/data environment: - PREFER_HOST_MODE=hostname nacos-server-3: image: nacos/nacos-server:latest container_name: nacos-server-3 ports: - "8850:8848" volumes: - ./data/nacos/logs:/home/nacos/logs - ./data/nacos/data:/home/nacos/data environment: - PREFER_HOST_MODE=hostname ``` 上述配置文件中,我们定义了三个 Nacos 服务节点,分别对应端口号 8848、8849 和 8850。你可以根据自己的需求进行修改。 4. 在命令行中进入到该目录,运行以下命令启动 Nacos 集群: ``` docker-compose up -d ``` 5. 等待一段时间,Nacos 集群就会启动完成。你可以通过浏览器访问 http://服务器IP:8848,就可以看到 Nacos 控制台了。 注意:在生产环境中,你可能需要进一步配置网络和安全设置,以确保集群的稳定性和安全性。此外,还可以添加更多的 Nacos 服务节点来搭建更大规模的集群
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值