欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

docker部署nacos单机及集群版本

时间:2023-05-18

一、不外接mysql,软件包部署方式

最新稳定版本 下载地址:https://github.com/alibaba/nacos/releases

下载后解压 目录如下 在bin 是启动脚本

启动命令(standalone代表着单机模式运行,非集群模式):

sh startup.sh -m standalone

nacos服务默认端口是8848 浏览器输入 http://ip:8848/nacos

登陆账号和密码都是 nacos

二、不外接mysql,docker部署方式

docker run -d -p 8848:8848 --env MODE=standalone --name nacos nacos-server:2.0.4

三、外接mysql,docker部署方式

安装mysql

创建数据库nacos_config,插入nacos的配置相关的sql

docker run -d -e MODE=standalone -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=172.16.0.124 -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD='xxxx' -e MYSQL_SERVICE_DB_NAME=nacos_config -p 8848:8848 --restart=always --name nacos nacos-server:2.0.4

四、docker-compose+nginx+mysql高可用集群版本

说明:

docker-compose部署3个nacos,然后使用nginx代理。

nacos官方因为nacos mysql的数据库主从模式有问题,1.3.1后已经废弃此方式,依旧只使用单一数据库。可参看github中文说明,且现在的mysql数据库配置一系列都为MYSQL_SERVICE_HOST,而不是原来的MYSQL_MASTER_XXXX 和 MYSQL_SLAVE_XXX

做nacos集群需要使用外部数据库,而非单机的自带嵌入式数据库,这里使用mysql。如果已经做了数据库的高可用,那么也是同理。

1.安装mysql

创建数据库nacos_config,插入nacos的配置相关的sql

/data/nacos-docker目录如下

[root@conntrack nacos-docker]# llcluster-logsdocker-compose-nacos.yamlenvinit.d

mkdir /data/nacos-docker/ -p mkdir /data/nacos-docker/env/ -pmkdir /data/nacos-docker/init.d/ -psudo docker network create --driver bridge --subnet 10.139.0.0/16 --gateway 10.139.0.1 pknet#10.139可以自定义,不冲突即可

2.vim docker-compose-nacos.yaml

version: "3"services:nacos:hostname: nacosimage: nacos-server:2.0.4container_name: lishanbin-nacosprivileged: truenetworks:- pknetvolumes:- ./cluster-logs:/home/nacos/logs- ./init.d/custom.properties:/home/nacos/init.d/custom.propertiesports:- "7848:7848"- "8848:8848"- "9848:9848"- "9555:9555"- "9849:9849"env_file:- ./env/nacos-ip.envrestart: on-failurenetworks:pknet:external: true

其中端口 7848、8848、9848、9849是必须要开放的端口,8848是web页面端口,7848是集群数据同步接口,9848、9849是nacos 2.0.0以上的版本必须开发的端口。

Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。

客户端拥有相同的计算逻辑,用户如同1.X的使用方式,配置主端口(默认8848),通过相同的偏移量,计算对应gRPC端口(默认9848)。因此如果客户端和服务端之前存在端口转发,或防火墙时,需要对端口转发配置和防火墙配置做相应的调整。

与主端口的偏移量

描述

9848

1000

客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求

9849

1001

服务端gRPC请求服务端端口,用于服务间同步等

3.在/data/nacos-docker/env/目录下新建nacos-ip.env文件,内容如下:

#nacos dev env#如果支持主机名可以使用hostname,否则使用ip,默认也是ipPREFER_HOST_MODE=ipMODE=cluster#多网卡情况下,指定ip或网卡NACOS_SERVER_IP=192.168.207.97#集群中其它节点[ip1:port ip2:port ip3:port]NACOS_SERVERS=192.168.207.97:8848 192.168.207.97:8849 192.168.207.97:8850#nacos的web端口,不写默认就是8848NACOS_APPLICATION_PORT=8848#数据源平台 仅支持mysql或不保存emptySPRING_DATASOURCE_PLATFORM=mysqlMYSQL_SERVICE_HOST=192.168.207.97MYSQL_SERVICE_DB_NAME=nacos_configMYSQL_SERVICE_PORT=3306MYSQL_SERVICE_USER=rootMYSQL_SERVICE_PASSWORD=xxxxMYSQL_DATAbase_NUM=1#JVM调优参数JVM_XMS=2gJVM_XMX=2gJVM_XMN=2gJVM_MS=128m

 4.在/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 prometheusmanagement.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

5.启动:docker-compose -f docker-compose-nacos.yaml up -d

浏览器访问:ip+8848,ip+8849,ip+8850均可访问

五、docker+mysql+nginx高可用集群版本

环境说明

主机ip 部署

192.168.216.56 mysql nacos1

192.168.216.49 nacos2

192.168.216.35 nacos3

192.168.216.49 nginx 做负载均衡

1.安装mysql

2.创建数据库nacos_config,插入nacos的配置相关的sql

3.nacos集群

所有部署主机自建/root/nacos/config logs 等目录,做路径映射
 

mkdir -p /root/nacos/configmkdir -p /root/nacos/logsmkdir -p /data/nacos/configmkdir -p /data/nacos/logs

/root/nacos/config下增加一个custom.properties文件

vi /root/nacos/config/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 prometheusmanagement.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

其他都注释掉了,包括一些监控等,以后需要可以自行修改配置

各个主机使用docker启动nacos:

192.168.216.56的nacos:

docker run -d --name nacos1 --hostname nacos1 --net=host --add-host nacos1:192.168.216.56 --add-host nacos2:192.168.216.35 --add-host nacos3:192.168.216.49 -e PREFER_HOST_MODE=hostname -e MYSQL_SERVICE_HOST=192.168.216.56 -e MYSQL_SERVICE_DB_NAME=nacos_config -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=xxxx -e MYSQL_SERVICE_PORT=3306 -e NACOS_SERVERS="nacos1:8848 nacos2:8848 nacos3:8848" -v /root/nacos/config/custom.properties:/home/nacos/init.d/custom.properties -v /root/nacos/logs:/home/nacos/logs nacos/nacos-server:1.4.2

192.168.216.49的nacos:

docker run -d --name nacos2 --hostname nacos2 --net=host --add-host nacos1:192.168.216.56 --add-host nacos2:192.168.216.35 --add-host nacos3:192.168.216.49 -e PREFER_HOST_MODE=hostname -e MYSQL_SERVICE_HOST=192.168.216.56 -e MYSQL_SERVICE_DB_NAME=nacos_config -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD='xxxx' -e MYSQL_SERVICE_PORT=3306 -e NACOS_SERVERS="nacos1:8848 nacos2:8848 nacos3:8848" -v /root/nacos/config/custom.properties:/home/nacos/init.d/custom.properties -v /root/nacos/logs:/home/nacos/logs nacos/nacos-server:1.4.1

192.168.214.35的nacos:

docker run -d --name nacos3 --hostname nacos3 --net=host --add-host nacos1:192.168.216.56 --add-host nacos2:192.168.216.35 --add-host nacos3:192.168.216.49 -e PREFER_HOST_MODE=hostname -e MYSQL_SERVICE_HOST=192.168.216.56 -e MYSQL_SERVICE_DB_NAME=nacos_config -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD='xxxx' -e MYSQL_SERVICE_PORT=3306 -e NACOS_SERVERS="nacos1:8848 nacos2:8848 nacos3:8848" -v /root/nacos/config/custom.properties:/home/nacos/init.d/custom.properties -v /root/nacos/logs:/home/nacos/logs nacos/nacos-server:1.4.1

4.安装nginx。配置负载均衡

stream { upstream nacos { server 192.168.216.56:8848; server 192.168.216.49:8848; server 192.168.216.35:8848; } server { listen 18848; proxy_pass nacos; }}

5.访问:192.168.216.49:18848/nacos

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。