系列文章目录
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 系列文章目录
- 前言
- 一、redis集群
- 二、mysql集群
- 三、nacos集群
- 1. 环境要求
- 2. 拉取镜像
- 2.1. 拉取镜像方式配置集群
- 2.2. 自定义nacos镜像配置集群
- 3 自定义Docker网络
- 4 添加Nacos的环境变量
- 5.挂载nacos的配置文件
- 6.docker-compose部署nacos
- 7 文件目录如下:
前言
一、redis集群
二、mysql集群
三、nacos集群
采用Nginx+域名模式进行搭建Nacos2.0.3 三节点的高可用集群
1. 环境要求
一台nginx,3台nacos
系统 | ip | 插件 |
---|---|---|
centos7 | 192.168.0.2 | docker、docker-compose、nginx |
centos7 | 192.168.0.2 | docker、docker-compose、nacos |
centos7 | 192.168.0.3 | docker、docker-compose、nacos |
centos7 | 192.168.0.203 | docker、docker-compose、nacos |
2. 拉取镜像
2.1. 拉取镜像方式配置集群
基于Docker搭建Nacos高可用集群
KubeSphere 和 知名开源项目 Pig 最佳实践
2.2. 自定义nacos镜像配置集群
本文采用自定义nacos镜像部署nacos集群
代码https://gitee.com/bjh1993/wf/tree/master/wf-register
3 自定义Docker网络
sudo docker network create --driver bridge --subnet 172.18.0.0/16 --gateway 172.18.0.1 wfnet
###说明:wfnet是docker自定义的网络名称,此处的172.18可以自定义,不冲突即可
启动docker后:docker默认网络有3个,无法删除
4 添加Nacos的环境变量
#以192.168.0.2为例:
#新建目录(可以自定义) 若干 :
mkdir /data/nacos-docker/ -p
mkdir /data/nacos-docker/env/ -p
mkdir /data/nacos-docker/init.d/ -p
cd /data/nacos-docker/env/
vim nacos-ip.env
在/data/nacos-docker/env/目录下新建nacos-ip.env文件,内容如下:
#nacos dev env#如果支持主机名可以使用hostname,否则使用ip,默认也是ip
#PREFER_HOST_MODE=ip
PREFER_HOST_MODE=hostname
MODE=cluster
#多网卡情况下,指定ip或网卡
NACOS_SERVER_IP=192.168.0.2
#集群中其它节点[ip1:port ip2:port ip3:port]
NACOS_SERVERS=192.168.0.2:8848 192.168.0.3:8848 192.168.0.203:8848
#nacos的web端口,不写默认就是8848
NACOS_APPLICATION_PORT=8848
#数据源平台 仅支持mysql或不保存empty
SPRING_DATASOURCE_PLATFORM=mysql
MYSQL_SERVICE_HOST=192.168.0.2
MYSQL_SERVICE_DB_NAME=wf_config
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=root
MYSQL_SERVICE_PASSWORD=wm_10088
MYSQL_DATABASE_NUM=1
#JVM调优参数
JVM_XMS=2g
JVM_XMX=2g
JVM_XMN=2g
JVM_MS=128m
JVM_MMS=320m
5.挂载nacos的配置文件
cd /data/nacos-docker/init.d
vim custom.properties
在/data/nacos-docker/init.d目录下新建custom.properties文件,内容如下:
#spring.security.enabled=false
#management.security=false
#security.basic.enabled=false
#nacos.security.ignore.urls=/**
#management.metrics.export.elastic.host=http://localhost:9200
# metrics for prometheus
management.endpoints.web.exposure.include=*
# metrics for elastic search
#management.metrics.export.elastic.enabled=false
#management.metrics.export.elastic.host=http://localhost:9200
# metrics for influx
#management.metrics.export.influx.enabled=false
#management.metrics.export.influx.db=springboot
#management.metrics.export.influx.uri=http://localhost:8086
#management.metrics.export.influx.auto-create-db=true
#management.metrics.export.influx.consistency=one
#management.metrics.export.influx.compressed=true
6.docker-compose部署nacos
cd /data/nacos-docker
vim docker-compose.yaml
#新建docker-compose.yaml文件,内容如下:
version: '3'
services:
wf-register:
build:
context: /home/wf/wf-service/wf/wf-register # wf-register代码及Dockerfile地址
restart: always
ports:
- "7848:7848"
- "8848:8848"
- "9848:9848"
- "9555:9555"
- "9849:9849"
container_name: wf-register
hostname: wf-register
image: wf-register
extra_hosts:
- "wf-mysql:192.168.0.2"
privileged: true
networks:
- wfnet
volumes:
- ./cluster-logs:/home/nacos/logs
- ./init.d/custom.properties:/home/nacos/init.d/custom.properties
env_file:
- ./env/nacos-ip.env
networks:
wfnet:
external: true
注:其中端口 7848、8848、9848、9849是必须要开放的端口,8848是web页面端口,7848是集群数据同步接口,9848、9849是nacos 2.0.0以上的版本必须开发的端口。
7 文件目录如下:
目录结构如下(若是自定义,请注意修改docker-compose文件中对应的路径):
3号机器启动报错
利用docker-compose编排nacos容器