准备三台服务器或者在 VMware 上装三个虚拟机,我们用的是虚拟机 Centos 7,这里使用的是 docker 部署
方式一:分别在三个虚拟中装上 docker 和 nacos 镜像
- 装 docker
yum -y install docker
- 装 naocs
docker pull nacos/nacos-server
- 在其中一台虚拟机上装一个 mysql
docker pull mysql:8
- 分别在每台虚拟机中集群模式启动 nacos 容器
# 创建守护式容器 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
- 修改 application.properties 文件
vim conf/application.properties
image.png
我这这里只用了一个数据库是192.168.117.142 服务器上的数据库,其他虚拟机配置一样
- 修改完后重启 nacos 容器,集群就完成了
docker restart nacos
方式二:使用 docker-compose
- 下载 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 查看当前内核
uname -r
image.png
- 在安装docker-compose之前首先检查是否安装了python-pip
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
- 安装成功后执行docker-compose --version失败的情况
- docker-compose无可执行权限
-bash: /usr/local/bin/docker-compose: Permission denied
添加权限
chmod +x /usr/local/bin/docker-compose
- 增加可执行权限后
[2468] Cannot open self /usr/local/bin/docker-compose or archive /usr/local/bin/docker-compose.pkg
解决办法
- 进入下面的网址下载目前的最新版:
https://github.com/docker/compose/releases/tag/1.14.0-rc2
网页最下面
docker-compose-Linux-x86_64
然后将文件上传到 /usr/local/bin/ 文件夹下,然后将其重命名为docker-compose,修改此文件的权限,增加可执行:
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
- clone 项目
git clone https://github.com/nacos-group/nacos-docker.git
cd nacos-docker
- cd 到 example 目录创建文件 cluster-deploy.yaml 文件,mysql 的配置可以,我配置了好像没有什么卵用,不知道怎么回事,还需要手动去改 application.properties。
文件内容
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
-
通过 ip 访问
image.png,
我这里是两台电脑,一台电脑负责在 VMware 中安装三台 centos7 另一个电脑服务连接,我们通过 VMware 将虚拟机的 ip 映射到宿主机也就是 电脑上,让另一台电脑可以通过安装虚拟机的电脑 ip 访问
image.pngimage.png
image.png
image.png
image.png
-
保存确定就可以使用主机 ip 进行访问了
image.png - 这时另一台电脑就可以连接了
客户端连接方式有两种
-
第一种:可以在单机的基础上加多个IP和端口中间用逗号隔开
image.png - 第二种:配合Nginx代理我们的Nacos的集群,配置里就直接写Nginx的IP和端口即可
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
网友评论