nacos2.0.3版本基于docker的集群部署

nacos2.0.3版本基于docker的集群部署,第1张

nacos2.0.3版本基于docker的集群部署

        记录一次在公司搭建nacos集群环境时,碰到的问题,因为一开始用的是运维给的执行命令,有问题,导致走了很多弯路,这里重新总结一下。

1 服务器准备

        准备3台服务器,安装好docker,我这里的是 10.10.1.12,10.10.1.13,10.10.1.15,三台服务器都可以连接外网。

2.下载镜像
[root@node12 conf.d]# docker pull nacos/nacos-server:2.0.3
2.0.3: Pulling from nacos/nacos-server
Digest: sha256:da74348293e1dbc489c07a48e0f170053ef7b22ec882e84e2254f190024bd996
Status: Image is up to date for nacos/nacos-server:2.0.3
docker.io/nacos/nacos-server:2.0.3

  在三台服务器上分别下载镜像,因为我这里已经下载,所以提示版本已是最新的

3.新建nacos配置文件

        1.数据库配置文件

        在/home/nacos/conf下新建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=*

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://10.10.1.16:3306/nacos_config?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
db.user=aaa
db.password=aaa


# 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

数据库的地址、账号、密码根据自己的情况自行修改

        2.日志配置文件

        在/home/nacos/conf下新建nacos-logback.xml文件




    
    

    
        ${nacos.home}/logs/cmdb-main.log
        true
        
            ${nacos.home}/logs/cmdb-main.log.%d{yyyy-MM-dd}.%i
            2GB
            7
            7GB
            true
        
        
            %date %level %msg%n%n
            UTF-8
        
    

    
        
            %date %level %msg%n%n
            UTF-8
        
    

    
        ${LOG_HOME}/naming-server.log
        true
        
            ${LOG_HOME}/naming-server.log.%d{yyyy-MM-dd}.%i
            1GB
            7
            7GB
            true
        
        
            %date %level %msg%n%n
            UTF-8
        
    

    
        0
        1024
        true
        
    

    
        ${LOG_HOME}/naming-raft.log
        true
        
            ${LOG_HOME}/naming-raft.log.%d{yyyy-MM-dd}.%i
            1GB
            7
            3GB
            true
        
        
            %date %level %msg%n%n
            UTF-8
        
    

    
        0
        1024
        true
        
    


    
        ${LOG_HOME}/naming-distro.log
        true
        
            ${LOG_HOME}/naming-distro.log.%d{yyyy-MM-dd}.%i
            1GB
            7
            3GB
            true
        
        
            %date %level %msg%n%n
            UTF-8
        
    

    
        0
        1024
        true
        
    

    
        ${LOG_HOME}/naming-event.log
        true
        
            ${LOG_HOME}/naming-event.log.%d{yyyy-MM-dd}.%i
            1GB
            7
            3GB
            true
        
        
            %date %level %msg%n%n
            UTF-8
        
    

    
        0
        1024
        true
        
    

    
        ${LOG_HOME}/naming-push.log
        true
        
            ${LOG_HOME}/naming-push.log.%d{yyyy-MM-dd}.%i
            1GB
            7
            3GB
            true
        
        
            %date %level %msg%n%n
            UTF-8
        
    
    
        ${LOG_HOME}/naming-rt.log
        true
        
            ${LOG_HOME}/naming-rt.log.%d{yyyy-MM-dd}.%i
            1GB
            7
            3GB
            true
        
        
            %msg%n
            UTF-8
        
    

    
        ${LOG_HOME}/naming-performance.log
        true
        
            ${LOG_HOME}/naming-performance.log.%d{yyyy-MM-dd}.%i
            1GB
            7
            3GB
            true
        
        
            %date %level %msg%n%n
            UTF-8
        
    

    
    
        ${LOG_HOME}/config-dump.log
        true
        
            ${LOG_HOME}/config-dump.log.%d{yyyy-MM-dd}.%i
            2GB
            7
            7GB
            true
        
        
            %date %level %msg%n%n
            UTF-8
        
    
    
        ${LOG_HOME}/config-pull.log
        true
        
            ${LOG_HOME}/config-pull.log.%d{yyyy-MM-dd}.%i
            20MB
            7
            128MB
            true
        
        
            %date %level %msg%n%n
            UTF-8
        
    
    
        ${LOG_HOME}/config-fatal.log
        true
        
            ${LOG_HOME}/config-fatal.log.%d{yyyy-MM-dd}.%i
            20MB
            7
            128MB
            true
        
        
            %date %level %msg%n%n
            UTF-8
        
    
    
        ${LOG_HOME}/config-memory.log
        true
        
            ${LOG_HOME}/config-memory.log.%d{yyyy-MM-dd}.%i
            20MB
            7
            128MB
            true
        
        
            %date %level %msg%n%n
            UTF-8
        
    
    
        ${LOG_HOME}/config-pull-check.log
        true
        
            ${LOG_HOME}/config-pull-check.log.%d{yyyy-MM-dd}.%i
            1GB
            7
            3GB
            true
        
        
            %msg%n
            UTF-8
        
    

    
        ${LOG_HOME}/config-client-request.log
        true
        
            ${LOG_HOME}/config-client-request.log.%d{yyyy-MM-dd}.%i
            2GB
            7
            7GB
            true
        
        
            %date|%msg%n
            UTF-8
        
    

    
        ${LOG_HOME}/config-trace.log
        true
        
            ${LOG_HOME}/config-trace.log.%d{yyyy-MM-dd}.%i
            2GB
            7
            7GB
            true
        
        
            %date|%msg%n
            UTF-8
        
    

    
        ${LOG_HOME}/config-notify.log
        true
        
            ${LOG_HOME}/config-notify.log.%d{yyyy-MM-dd}.%i
            1GB
            7
            3GB
            true
        
        
            %date %level %msg%n%n
            UTF-8
        
    

    
        ${LOG_HOME}/config-server.log
        true
        
            ${LOG_HOME}/config-server.log.%d{yyyy-MM-dd}.%i
            50MB
            7
            512MB
            true
        
        
            %date %level %msg%n%n
            UTF-8
        
    

    
        ${LOG_HOME}/nacos.log
        true
        
            ${LOG_HOME}/nacos.log.%d{yyyy-MM-dd}.%i
            50MB
            7
            512MB
            true
        
        
            %date %level %msg%n%n
            UTF-8
        
    

    
        ${LOG_HOME}/nacos-address.log
        true
        
            ${LOG_HOME}/nacos-address.log.%d{yyyy-MM-dd}.%i
            2GB
            7
            7GB
            true
        
        
            %date %level %msg%n%n
            UTF-8
        
    

    
        ${LOG_HOME}/istio-main.log
        true
        
            ${LOG_HOME}/istio-main.log.%d{yyyy-MM-dd}.%i
            2GB
            7
            7GB
            true
        
        
            %date %level %msg%n%n
            UTF-8
        
    

    
        
        
    

    
        
        
    

    
        
        
    
    
        
        
    
    
        
        
    
    
        
        
    
    
        
        
    
    
        
        
    
    
        
        
    

    
        
        
    
    
        
        
    
    
        
        
    
    
        
        
    
    
        
        
    

    
        
        
    

    
        
        
    

    
        
        
    

    
        
        
    

    
        
        
    

    
        
            
            
        

        
            
            
        

        
            
            
        

        
            
            
        

        
            
            
        
    

    
        
        
    

    
        
        
    
4.运行镜像
docker run -d --name nacos15-c --hostname nacos15-c  
-p 7848:7848 -p 8848:8848 -p 9555:9555 -p 9848:9848 -p 9849:9849 
-e PREFER_HOST_MODE=ip 
-e MODE=cluster 
--restart=always 
--privileged=true 
-e NACOS_SERVER_IP=10.10.1.15 
-e NACOS_SERVERS="10.10.1.12:8848 10.10.1.13:8848 10.10.1.15:8848" 
-e MYSQL_SERVICE_DB_PARAM=
"characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&allowPublicKeyRetrieval=true&serverTimezone=GMT%2B8" 
-v /home/nacos/log/log/:/home/nacos/logs 
-v /home/nacos/conf/:/home/nacos/conf 
nacos/nacos-server:2.0.3

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

        -v映射的配置目录是外边宿主机存放日志配置文件和数据库配置文件的目录,我这里是/home/nacos/conf,可以根据自己的情况自行修改。分别在三台服务器上运行启动命令生成容器。

        nacos_server_ip=10.10.1.15是服务器本级的ip地址,根据自己的情况自行修改,

        nacos_servers=10.10.1.12:8848 10.10.1.13:8848 10.10.1.15:884 是集群中每一个节点的地址,启动过程中会连接其他集群中的节点,如果没有的话,会有抱错信息,如果其他节点还没有启动,可以先不用管,其他节点启动后会重新尝试连接。

        mode=cluster 指定启动模式为集群模式

5.启动成功后,登录web页面查看

这里看到三台服务器都已经上线。

6.后续问题, 

        集群搭建好后,业务服务向nacos注册时,会存在注册失败的情况,如图:

登录抱错信息中提供的网址,关闭双写,释放性能,重启服务。

PUT http://localhost:8848/nacos/v1/ns/operator/switches?entry=doubleWriteEnabled&value=false

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4670362.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-06
下一篇 2022-11-06

发表评论

登录后才能评论

评论列表(0条)

保存