Files
DDDMicroFrontend/docker/nacos-cluster/README.md
2025-09-29 05:07:42 +08:00

148 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## nacos-cluster hostname 集群版
把 Nacos 部署到多台Linux 服务器上的版本配置,下面是**文件说明**
- docker-compose.yml: Docker compose + Docker Swarm 的编排文件
- nacos_config_export.zip: 存储在Nacos配置中心的项目配置部署成功后台导入即可
- mysql-schema.sql: Nacos 集群公用的数据库会自动导入到Mysql不用动
- prometheus: Prometheus 的配置文件
## 条件
- 至少三台起步的Linux主机安装有docker你可以使用虚拟机。
- 一个能正常访问Docker的网络环境拉取镜像
- 耐心,毅力,别慌!
## 集群配置
假设我们有三台Linux主机他们的IP地址为
- 1: 192.168.139.84
- 2: 192.168.139.15
- 3: 192.168.139.178
选一台你喜欢的(我选1),作为集群的 **Manager**然后SSH登录进去获取管理员权限然后
```bash
# 初始化 Swarm 集群
docker swarm init --advertise-addr 192.168.139.84
```
命令执行完成后,你会得到这样的返回:
```bash
Swarm initialized: current node (z5sucmc80ns8bxrdqhs71dg8x) is now a manager.
To add a worker to this swarm, run the following command:
# 复制这个
docker swarm join --token SWMTKN-1-3n9xxxxnwvsj6-4rhxx8xxxxzbbul 192.168.139.84:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
```
然后SSH登录**worker**机,也就是 上面的 23 服务器获取SSH权限后分别执行上面给的命令
```bash
docker swarm join --token SWMTKN-1-3n9xxxxnwvsj6-4rhxx8xxxxzbbul 192.168.139.84:2377
```
**这样 23 服务器就和1服务器组成了集群**
可以指执行命令查看是否组成集群:
```bash
# 查看所有节点
docker node ls
```
注意如果你的服务器有防火墙那么请记住放行端口下面是Ubuntu上的例子
```bash
# --- Docker Swarm 集群通信端口 ---
# TCP 2377: Swarm 管理端口 (仅在 Manager 和 Worker 之间通信)
sudo ufw allow 2377/tcp
# TCP/UDP 7946: 节点之间的控制平面和数据平面的 gossip 协议通信
sudo ufw allow 7946/tcp
sudo ufw allow 7946/udp
# UDP 4789: VXLAN 端口,用于 overlay 网络中容器之间的通信
sudo ufw allow 4789/udp
# --- MySQL 数据库端口 (可选) ---
# TCP 3306: MySQL 数据库端口(需要外部访问数据库时候才开)
sudo ufw allow 3306/tcp
# --- Nacos 集群端口 ---
# Nacos 管理后台端口
sudo ufw allow 8080/tcp
# 客户端gRPC请求服务端端口用于客户端向服务端发起连接和请求
sudo ufw allow 9848/tcp
# Nacos HTTP API 端口用于Nacos AdminAPI及HTTP OpenAPI的访问
sudo ufw allow 8848/tcp
# 重新加载防火墙以应用所有规则
sudo ufw reload
# 查看配置和状态
ufw status
```
## 部署运行
### 运行启动
将本文件夹内所有文件上传到 1号服务器然后执行命令
```bash
# 部署栈,这个过程有点慢,因为需要拉取镜像,等!
docker stack deploy -c docker-compose.yml nacos-cluster
# 命令完成后,需要等待 Nacos 启动,大概几十秒到一分钟这样!!
# 启动成功后直接查看下面教程【Nacos后台】
# --- 其他命令 ---
# 部署后,不用了,可以使用这个 删除栈
docker stack rm nacos-cluster
# 可以查看Nacos的 实时日志:
docker service logs --follow nacos-cluster_nacos
# 可以查看Mysql的 实时日志:
docker service logs --follow nacos-cluster_mysql
# 查看 nacos-cluster 集群运行情况
docker stack ps nacos-cluster
# 持续观察服务副本数是否达到预期
watch docker stack services nacos-cluster
```
### Nacos后台
选择一个地址浏览器打开,注册登录账户:
- (http://192.168.139.84:8080)[http://192.168.139.84:8080]
- (http://192.168.139.15:8080)[http://192.168.139.15:8080]
- (http://192.168.139.178:8080)[http://192.168.139.178:8080]
然后打开左侧导航 **配置管理** --> **配置列表** --> **导入配置**
选择 nacos_config.zip 导入即可。
### 其他后台:
- [Prometheus](http://192.168.139.84:9090)
- [Grafana](http://192.168.139.84:3000)
- 默认账户admin
- 默认密码密码admin
**结束**