Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
服务器准备
192.168.197.136 nacos-1
192.168.197.137 nacos-2
192.168.197.138 nacos-3
三台服务器都要拉取nacos镜像
docker pull nacos/nacos-server:v2.1.0
docker run -d --name nacos-1 --net=host nacos/nacos-server:v2.1.0
docker cp nacos-1:/home/nacos . 把nacos目录拷贝出来做持久化
docker run -d --name nacos-2 --net=host nacos/nacos-server:v2.1.0
docker cp nacos-2:/home/nacos . 把nacos目录拷贝出来做持久化
docker run -d --name nacos-3 --net=host nacos/nacos-server:v2.1.0
docker cp nacos-3:/home/nacos . 把nacos目录拷贝出来做持久化
为了方便管理编写了脚本进行管理
vim nacos-1.sh
#!/bin/bash
docker rm -f nacos-1
docker run -itd --name nacos-1 \
-e MODE=cluster \
-e PREFER_HOST_MODE=192.168.197.136 \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.197.136 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=slave \
-e MYSQL_SERVICE_PASSWORD=123456 \
-e NACOS_SERVERS="192.168.197.136:8848,192.168.197.137:8848,192.168.197.138:8848" \
-e JVM_XMS=512m \
-e JVM_XMX=512m \
-v /data/nacos/:/home/nacos \
--net=host \
--restart=always \
nacos/nacos-server:v2.1.0
参数解释:
MODE=cluster`:指定Nacos的模式为集群模式。
PREFER_HOST_MODE=192.168.197.136`:指定Nacos的主节点IP地址。
SPRING_DATASOURCE_PLATFORM=mysql`:指定Nacos使用的数据库类型为MySQL。
MYSQL_SERVICE_HOST=192.168.197.136`:指定MySQL数据库所在的主机IP地址。
MYSQL_SERVICE_PORT=3306`:指定MySQL数据库的端口号。
MYSQL_SERVICE_DB_NAME=nacos`:指定Nacos使用的MySQL数据库名称。
MYSQL_SERVICE_USER=slave`:指定连接MySQL数据库所使用的用户名。
MYSQL_SERVICE_PASSWORD=123456`:指定连接MySQL数据库所使用的密码。
NACOS_SERVERS="192.168.197.136:8848,192.168.197.137:8848,192.168.197.138:8848"`:指定Nacos集群中所有节点的IP地址和端口号。
JVM_XMS=512m`:指定JVM的初始堆大小。
JVM_XMX=512m`:指定JVM的最大堆大小。
/data/nacos/:/home/nacos`:将本地目录`/data/nacos/`映射到容器内`/home/nacos`目录。
net=host`:使用主机网络模式,使容器与主机共享网络栈,可以使用主机IP地址访问Nacos服务。
vim nacos-2.sh
#!/bin/bash
docker rm -f nacos-2
docker run -itd --name nacos-2 \
-e MODE=cluster \
-e PREFER_HOST_MODE=192.168.197.136 \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.197.136 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=slave \
-e MYSQL_SERVICE_PASSWORD=123456 \
-e NACOS_SERVERS="192.168.197.136:8848,192.168.197.137:8848,192.168.197.138:8848" \
-e JVM_XMS=512m \
-e JVM_XMX=512m \
-v /data/nacos/:/home/nacos \
--net=host \
--restart=always \
nacos/nacos-server:v2.1.0
vim nacos-3.sh
#!/bin/bash
docker rm -f nacos-3
docker run -itd --name nacos-3 \
-e MODE=cluster \
-e PREFER_HOST_MODE=192.168.197.136 \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.197.136 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_DB_NAME=nacos \
-e MYSQL_SERVICE_USER=slave \
-e MYSQL_SERVICE_PASSWORD=123456 \
-e NACOS_SERVERS="192.168.197.136:8848,192.168.197.137:8848,192.168.197.138:8848" \
-e JVM_XMS=512m \
-e JVM_XMX=512m \
-v /data/nacos/:/home/nacos \
--net=host \
--restart=always \
nacos/nacos-server:v2.1.0
注意leader选举是通过7848端口通信的需要开放
运行三个节点的脚本
bash nacos-1.sh
bash nacos-2.sh
bash nacos-3.sh
访问nacos的web页面查看集群状态
192.168.197.136:8848/nacos 默认用户nacos默认密码nacos
至此nacos集群部署完成 。