实现 nacos 的分布式集群部署配置

This commit is contained in:
编码猿
2025-09-29 05:07:42 +08:00
parent ced7662d98
commit 04754a1f77
82 changed files with 991 additions and 62852 deletions

View File

@@ -0,0 +1,147 @@
## 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
**结束**