## 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**机,也就是 上面的 2,3 服务器,获取SSH权限后,分别执行上面给的命令: ```bash docker swarm join --token SWMTKN-1-3n9xxxxnwvsj6-4rhxx8xxxxzbbul 192.168.139.84:2377 ``` **这样 2,3 服务器就和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 **结束**