docker-compose方式搭建nacos集群
环境节点ipdocker版本服务器192.168.0.20119.03.11centos7192.168.0.20219.03.11centos7192.168.0.20319.03.11centos7安装docker-compose环境首先检测是否有docker-compose环境执行 docker-compose version如果没有择安装docker-compose安装docker-com
环境
节点ip | docker版本 | 服务器 |
---|---|---|
192.168.0.201 | 19.03.11 | centos7 |
192.168.0.202 | 19.03.11 | centos7 |
192.168.0.203 | 19.03.11 | centos7 |
安装docker-compose环境
首先检测是否有docker-compose环境
执行 docker-compose version
如果没有择安装docker-compose
安装docker-compose环境
yum install -y python3-pip
添加 pip 的镜像
cd ~
mkdir .pip
cd .pip
vi pip.conf
pip.conf 中的内容为
[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
trusted-host=pypi.tuna.tsinghua.edu.cn
然后
pip3 install docker-compose
执行效果如下图
安装完毕,查看docker-compose是否安装成功
执行 docker-compose version
到此为止,docker-compose环境安装完毕
搭建naocs集群
nacos集群的搭建我是学习的这篇博主的文章
Nacos高可用集群解决方案-Docker版本
为了方便快速一点,下面的配置先在第一个节点配置完毕,然后把目录直接通过ssh链接工具,复制到其他节点的相同路径下,然后再通过docker-compose各自启动各自的.yml,就完事,你懂我意思吧
目录结构
目录说明
- init.d/custom.properties - 官方提供的自选功能配置文件,Nacos节点均包含此目录
- nacos-1/docker-compose-nacos1.yml - 第一个Nacos节点的Docker-compose配置文件
- nacos-2/docker-compose-nacos1.yml - 第二个Nacos节点的Docker-compose配置文件
- nacos-3/docker-compose-nacos1.yml - 第三个Nacos节点的Docker-compose配置文件
除此之外,在每个nacos-*目录下边,使用docker-compose命令启动容器后,会创建出cluster-logs目录
最常用的是 nacos.log
编辑配置文件docker-compose-nacos
201节点的docker-compose-nacos1.yml
version: '3'
services:
docker-nacos-server:
#nacos-server服务注册与发现,配置中心服务
image: nacos/nacos-server:1.1.4
container_name: nacos-server-1
ports:
- "8848:8848"
- "9555:9555"
networks:
- nacos_net
restart: on-failure
privileged: true
environment:
#如果支持主机名可以使用hostname,否则使用ip,默认也是ip
PREFER_HOST_MODE: 192.168.0.201
#数据源平台 仅支持mysql或不保存empty
SPRING_DATASOURCE_PLATFORM: mysql
#一般是本机的IP地址
NACOS_SERVER_IP: 192.168.0.201
#集群中其它节点[ip1:port ip2:port ip3:port]
NACOS_SERVERS: 192.168.0.201:8848 192.168.0.202:8848 192.168.0.203:8848
#mysql配置,Master为主节点,Slave为从节点
MYSQL_MASTER_SERVICE_HOST: 192.168.0.201
MYSQL_MASTER_SERVICE_PORT: 3306
MYSQL_MASTER_SERVICE_DB_NAME: nacos_config
MYSQL_MASTER_SERVICE_USER: root
MYSQL_MASTER_SERVICE_PASSWORD: zaqxsw
MYSQL_SLAVE_SERVICE_HOST: 192.168.0.202
MYSQL_SLAVE_SERVICE_PORT: 3306
#JVM调优参数
JVM_XMS: 256m
JVM_XMX: 256m
JVM_XMN: 256m
volumes:
#日志输出目录
- ./cluster-logs/nacos1:/home/nacos/logs
#../init.d/custom.properties内包含很多自定义配置,可按需配置
- ./init.d/custom.properties:/home/nacos/init.d/
networks:
nacos_net:
driver: bridge
202和203的配置文件一模一样,就是把container_name参数,后面分别改成对应的nacos-server-2,nacos-server-3
NACOS_SERVER_IP:改成各自本机的IP
编辑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
直接复制进去,就完事了
启动Nacos集群
上面已经把每个节点的配置都配置好了,下面,启动!
201节点:
cd nacos-cluster-docker/nacos-1
docker-compose -f docker-compose-nacos1.yml up -d
202节点:
cd nacos-cluster-docker/nacos-2
docker-compose -f docker-compose-nacos2.yml up -d
203节点:
cd nacos-cluster-docker/nacos-3
docker-compose -f docker-compose-nacos3.yml up -d
查看日志:如查看201节点的日志,/nacos-cluster-docker/nacos-1/cluster-logs/nacos1/nacos.log
登录nacos UI界面
访问192.168.0.201:8848/nacos
其实每个节点都可以访问,这样就可以看到已经配置好的集群了
配置Nginx
nginx我们也用docker装
1.下载nginx镜像
docker pull nginx
2 运行nginx,目的是为了拿到配置文件 nginx.conf做修改
docker run --name nginx-test -p 8080:80 -d nginx
3.获取nginx.conf
docker cp nginx-test:/etc/nginx/nginx.conf /home/local
4.修改配置文件
vim /home/local/nginx.conf
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
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;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
upstream nacos{
server 192.168.0.201:8848 weight=1 max_fails=2 fail_timeout=10s;
server 192.168.0.202:8848 weight=1 max_fails=2 fail_timeout=10s;
server 192.168.0.203:8848 weight=1 max_fails=2 fail_timeout=10s;
}
server {
listen 8888;
server_name 192.168.0.201;
location /nacos{
proxy_pass http://nacos;
}
}
}
upstream 模块是指定了负载均衡的集群,轮询的地址,后面是跟的一些延迟,权重等参数
server里的listen,就是指定的启动的端口
server_name是访问IP地址
运行
docker run -p 8888:8888 --network=bridge --name nacosNginx -v /home/local/nginx.conf:/etc/nginx/nginx.conf --privileged=true -d nginx
遇到的问题
1.端口配置没有用
解决:
一开始run运行镜像时,没有加 - -net host ,导致docker里面的容器的ip无法识别
2.配置后访问502
upstream里面的ip+端口应该与nacos里面的一致
3.访问404
访问路径问题
http://192.168.142.128:1111/nacos(虚拟机ip+1111端口+/nacos( !!! ))
更多推荐
所有评论(0)