docker部署nacos集群

1. 环境准备

准备4台服务器,一台安装nginx和mysql 另三台做集群使用

IP 服务 操作系统
192.168.3.215 Nginx/Mysql CentOS 7.9
192.168.3.216 Nacos-1 CentOS 7.9
192.168.3.217 Nacos-2 CentOS 7.9
192.168.3.218 Nacos-3 CentOS 7.9

 

 

 

 

 

mysql选用5.7 需要提前安装,并且部署nacos数据库脚本,nacos脚本可以看我之前的博客

 

2. 部署nacos集群

2.1 拉去nacos镜像(选用nacos2.0.2):三台服务器都需要执行

docker pull nacos/nacos-server:2.0.2

2.2 创建nacos日志路径 :三台服务器都需要执行

mkdir -p /usr/local/software/nacos/logs

2.3 执行docker命令:三台服务器分别执行

2.3.1 nacos-1(192.168.3.216) docker命令

docker run -d \
-p 8848:8848 \
-p 9848:9848 \
-e NACOS_AUTH_ENABLE=true \
-e JVM_XMS=128m \
-e JVM_XMX=128m \
-e JVM_XMN=128m \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVER_PORT=8848 \
-e NACOS_SERVERS="192.168.3.216:8848 192.168.3.217:8848 192.168.3.218:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.3.215 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_DB_PARAM='characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false' \
-e NACOS_SERVER_IP=192.168.3.216 \
-v /usr/local/software/nacos/logs:/home/nacos/logs \
--privileged=true \
--restart=always \
--name nacos1 \
nacos/nacos-server:2.0.2

2.3.2 nacos-2(192.168.3.217) docker命令

docker run -d \
-p 8848:8848 \
-p 9848:9848 \
-e NACOS_AUTH_ENABLE=true \
-e JVM_XMS=128m \
-e JVM_XMX=128m \
-e JVM_XMN=128m \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVER_PORT=8848 \
-e NACOS_SERVERS="192.168.3.216:8848 192.168.3.217:8848 192.168.3.218:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.3.215 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_DB_PARAM='characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false' \
-e NACOS_SERVER_IP=192.168.3.217 \
-v /usr/local/software/nacos/logs:/home/nacos/logs \
--privileged=true \
--restart=always \
--name nacos2 \
nacos/nacos-server:2.0.2

2.3.3 nacos-3(192.168.3.218) docker命令

docker run -d \
-p 8848:8848 \
-p 9848:9848 \
-e NACOS_AUTH_ENABLE=true \
-e JVM_XMS=128m \
-e JVM_XMX=128m \
-e JVM_XMN=128m \
-e PREFER_HOST_MODE=ip \
-e MODE=cluster \
-e NACOS_SERVER_PORT=8848 \
-e NACOS_SERVERS="192.168.3.216:8848 192.168.3.217:8848 192.168.3.218:8848" \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=192.168.3.215 \
-e MYSQL_SERVICE_PORT=3306 \
-e MYSQL_SERVICE_USER=root \
-e MYSQL_SERVICE_PASSWORD=root \
-e MYSQL_SERVICE_DB_NAME=nacos_config \
-e MYSQL_SERVICE_DB_PARAM='characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false' \
-e NACOS_SERVER_IP=192.168.3.218 \
-v /usr/local/software/nacos/logs:/home/nacos/logs \
--privileged=true \
--restart=always \
--name nacos3 \
nacos/nacos-server:2.0.2

参数说明:

参数 说明
-d 支持后台运行模式
-p 8848:8848 把容器内的端口8848挂载到宿主机8848上面
-p 9848:9848  把容器内的端口9848挂载到宿主机9848上面
-e NACOS_AUTH_ENABLE=true 开启 Nacos server 的注册鉴权
-e JVM_XMS=128m 为jvm启动时分配的内存
-e JVM_XMX=128m 为jvm运行过程中分配的最大内存
-e JVM_XMN=128m 为jvm设置年轻代的大小
-e PREFER_HOST_MODE=ip 是否支持hostname,可选项:hostname/ip,默认值ip
-e MODE=cluster 集群模式或者单独模式, 可选项:cluster/standalone,默认值cluster
-e NACOS_SERVER_PORT=8848 nacos服务端口
-e NACOS_SERVERS="192.168.3.216:8848 192.168.3.217:8848 192.168.3.218:8848" nacos集群地址
-e SPRING_DATASOURCE_PLATFORM=mysql 以mysql为nacos做数据持久化
-e MYSQL_SERVICE_HOST=192.168.3.215 mysql地址
-e MYSQL_SERVICE_PORT=3306-e mysql访问地址
-e MYSQL_SERVICE_USER=root mysql账号
-e MYSQL_SERVICE_PASSWORD=root mysql密码
-e MYSQL_SERVICE_DB_NAME=nacos_config mysql使用库
-e MYSQL_SERVICE_DB_PARAM='characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false' mysql常用连接参数
-e NACOS_SERVER_IP=192.168.3.218 nacos单机注册地址
-v /usr/local/software/nacos/logs:/home/nacos/logs 挂在nacos运行日志
--privileged=true 使用root权限运行容器
--restart=always 容器自动运行
--name nacos3 容器名字
nacos/nacos-server:2.0.2 使用docker镜像

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.4 访问页面查看是否运行成功:IP:8848/nacos

 登录账号:nacos/nacos(正式运行的时候别忘了改密码)

 

2.5 查看容器运行状态

集群管理 > 节点列表 查看集群运行状态

 

3. 安装nginx 做nacos负载均衡(192.168.3.215)

3.1 拉去nginx镜像

docker pull nginx:latest

3.2 创建nginx配置文件

mkdir -p /usr/local/software/nginx/conf

touch /usr/local/software/nginx/conf/nginx.conf

3.3 nginx配置文件详情

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    upstream nacos8848 {
        server 192.168.3.216:8848;
        server 192.168.3.217:8848;
        server 192.168.3.218:8848;
    }

    upstream nacos9848 {
        server 192.168.3.216:9848;
        server 192.168.3.217:9848;
        server 192.168.3.218:9848;
    }

    server {
        listen 8848;
        location / {
            proxy_pass http://nacos8848;
        }
    }

    server {
        listen 9848;
        location / {
            proxy_pass http://nacos9848;
        }
    }
    

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

3.4 运行nginx命令

docker run -d \
-p 8848:8848 \
-p 9848:9848 \
--privileged=true \
--restart=always \
-v /usr/local/software/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
--name nacos-nginx \
nginx:latest

3.5 访问地址,查看nginx是否部署成功

http://192.168.3.215:8848/nacos

 

 nacos 集群部署成功

 

4. 捐赠支持

你可以请作者喝杯咖啡表示鼓励

posted @ 2023-05-28 13:54  明知山有小脑斧  阅读(1644)  评论(0编辑  收藏  举报