Spring Cloud

Nacos 集群搭建

2020-10-09  本文已影响0人  吉他手_c156

准备三台服务器或者在 VMware 上装三个虚拟机,我们用的是虚拟机 Centos 7,这里使用的是 docker 部署

方式一:分别在三个虚拟中装上 docker 和 nacos 镜像

yum -y install docker
docker pull nacos/nacos-server
docker pull mysql:8
# 创建守护式容器 nacos
docker run -di --name=nacos \
# 集群模式启动
-e MODE=cluster \
# 集群节点  ip:port
-e NACOS_SERVERS=192.168.117.140:8848,192.168.117.141:8848,192.168.117.142:8848 \
# 是否支持 hostname 默认是 ip
-e PREFER_HOST_MODE=hostname 
# 多网卡下的自定义 nacos 服务器 ip 一定要加上对应到每个服务以 ip 就可以
-e NACOS_SERVER_IP=192.168.117.140 
# 映射端口
-p 8848:8848 
# 挂在目录
-v /root/data/logs:/home/nacos/logs 
--privileged=true 
# 镜像名称
docker.io/nacos/nacos-server

启动完进入容器修改 applicaiton.properties 配置

docker exec -it nacos /bin/bash
vim conf/application.properties
image.png

我这这里只用了一个数据库是192.168.117.142 服务器上的数据库,其他虚拟机配置一样

docker restart nacos

方式二:使用 docker-compose

sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

Centos 7 安装 docker-compose 内核版本在 3.10 以上

uname -r
image.png
pip -v
[root@localhost ~] yum -y install epel-release
[root@localhost ~] yum -y install python-pip
[root@localhost ~] pip install --upgrade pip
[root@localhost ~] pip install docker-compose --ignore-installed requests 
[root@localhost ~] docker-compose -version
  1. docker-compose无可执行权限
-bash: /usr/local/bin/docker-compose: Permission denied

添加权限

chmod +x /usr/local/bin/docker-compose
  1. 增加可执行权限后
[2468] Cannot open self /usr/local/bin/docker-compose or archive /usr/local/bin/docker-compose.pkg

解决办法

chmod +x /usr/local/bin/docker-compose
[root@localhost bin]# docker-compose -version
docker-compose version 1.14.0-rc2, build 24dae73

ubuntu 安装

使用自带的下载源,使用阿里云的下载源没有下载成功,执行命令

sudo apt-get install docker-compose
git clone https://github.com/nacos-group/nacos-docker.git
cd nacos-docker
version: "3"
services:
  nacos:
    hostname: nacos-1
    image: nacos/nacos-server:latest
    container_name: nacos
    environment:
      - MODE=cluster # 集群模式
      - NACOS_SERVERS=192.168.117.140:8848,192.168.117.141:8848,192.168.117.142:8848 # IP1,IP2是对应的服务器外网,PORT1,PORT2是对应的nacos服务端口
      - PREFER_HOST_MODE=hostname
      - NACOS_SERVER_IP=192.168.117.130 # 服务器外网
      - SPRING_DATASOURCE_PLATFORM=mysql
      - MYSQL_MASTER_SERVICE_HOST=192.168.117.130 # mysql数据库对应的ip
      - MYSQL_MASTER_SERVICE_PORT=3306    # mysql数据库对应的端口
      - MYSQL_MASTER_SERVICE_DB_NAME=nacos_devtest 
      - MYSQL_MASTER_SERVICE_USER=root
      - MYSQL_MASTER_SERVICE_PASSWORD=root
      - MYSQL_DATABASE_NUM=1 # 数据源为1个
    volumes:
      - /root/myLocal/logs:/home/nacos/logs # 日志的挂在
    ports:
      - "8848:8848"
      - "9555:9555"
    restart: on-failure # 开机自启
    privileged: true
docker-compose -f example/cluster-deploy.yaml up 

我这里是两台电脑,一台电脑负责在 VMware 中安装三台 centos7 另一个电脑服务连接,我们通过 VMware 将虚拟机的 ip 映射到宿主机也就是 电脑上,让另一台电脑可以通过安装虚拟机的电脑 ip 访问

image.png
image.png
image.png
image.png
image.png

客户端连接方式有两种

    upstream nacos_server{
        server 192.168.1.107:8888;
        server 192.168.1.107:8881;
        server 192.168.1.107:8882;
    }
    server {
        listen       8899;
        server_name  localhost;

        location /nacos/ {
           proxy_set_header Host $http_host;
           proxy_pass http://nacos_server/nacos/;
        }
    }
image.png
上一篇 下一篇

猜你喜欢

热点阅读