1.准备基础环境 3台linux虚拟机(jdk+nacos)

 

1.1配置网络

在虚拟机设置里面选择桥接方式,这样可以关联虚拟网卡和宿主机网卡

修改网卡配置

vi /etc/sysconfig/network-scripts/ifcfg-enp33

先让它动态分配一个ip地址

修改ONBOOT=yes

然后执行

service network restart

如果失败,参考 解决问题

 

再设置静态ip地址

vi /etc/sysconfig/network-scripts/ifcfg-enp33

修改为下面的内容,没有就新增

BOOTPROTO=static

IPADDR=前三部分和宿主机保持一致,最后一部分自定

NETMASK=和宿主机保持一致

GATEWAY=和宿主机保持一致

 

执行

service network restart

 

检查是否配置成功

ip addr

 

最后配置DNS

检查NetManager的状态:systemctl status NetworkManager.service

如果没有启动,执行systemctl restart NetworkManager.service 启动网络管理服务

检查NetManager管理的网络接口:nmcli dev status

检查NetManager管理的网络连接:nmcli connection show

设置dns:nmcli con mod enp0s3 ipv4.dns "10.126.118.11 9.9.9.8" dns尽量和宿主机的保持一致

让dns配置生效:nmcli con up enp33

 

1.2配置hosts

vi /etc/hosts

配置本机的hostname到ip地址的映射

例如:

10.192.119.11 master

 

1.3关闭防火墙

关闭linux机器上的防火墙

systemctl stop firewalld.service

systemctl disable firewalld.service

关闭windows的防火墙

后面要搭建集群,防火墙可能会导致无法互相连接,会导致搭建失败

 

1.4配置yum(可配可不配)

yum clean all

yum makecache

yum install wget

1.5安装JDK

将jdk-8u131-linux-x64.rpm上传到虚拟机中,可以使用xshell上传(家庭版是免费,可去官网获取下载链接)

安装JDK:rpm -ivh jdk-8u131-linux-x64.rpm

配置jdk相关的环境变量

修改配置vi .bashrc

添加下面的内容

export JAVA_HOME=/usr/java/latest

export PATH=$PATH:$JAVA_HOME/bin

执行source .bashrc 使之生效

 测试jdk安装是否成功:java -version

 

1.6在另外2个虚拟机中安装CentOS集群

按照上述步骤,再安装2台一模一样环境的linux机器

安装好之后,在每台机器的hosts文件里面,配置好所有的机器的ip地址到hostname的映射关系

比如说,的hosts里面

10.126.118.xxx name1

10.126.118.xxx name2

10.126.118.xxx name3

 

1.7配置3台CentOS为ssh免密码互相通信

首先在三台机器上分别各自执行下面的命令生成自己的文件:ssh-keygen -t rsa

生成本机的公钥,过程中不断敲回车即可,ssh-keygen命令默认会将公钥放在/root/.ssh目录下

在三台机器上分别各自进入目录,拷贝自己的公钥文件为authroized_keys文件,让三台机器先各自对自己免密码ssh可以登录

cd /root/.ssh

cp id_rsa.pub authorized_keys

将公钥复制为authorized_keys文件,此时使用ssh连接本机就不需要输入密码了

 

接着配置三台机器互相之间的ssh免密码登录,在每台机器上执行下面的命令

使用ssh-copy-id -i hostname命令就可以将本机的公钥拷贝到指定hostname的authorized_keys文件中

输入ssh hostname 验证是否免密成功

输入logout可以退出远程连接的机器,回到本机

 

1.8 准备nacos,本机要提前装好maven以及git

使用git命令拉取nacos源码

git clone https://github.com/alibaba/nacos.git

下载好了之后使用命令提示窗口进入到nacos所在目录

cd nacos/

输入下面的命令进行编译

mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  ,1个小时左右

可能或出现的错误有maven版本不匹配,jdk版本不匹配等,修改对应软件和nacos所需的版本一致

也可能出现 Failed to execute goal org.xolstice.maven.plugins:protobuf-maven-plugin:0.5.0.....的错误,我这边的做法是修改版本

<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.6.1</version>

编译通过了之后执行此方法ls -al distribution/target/

最后在下面目录中把tar.gz结尾的service文件上传到3台服务当中去

cd distribution/target/

tar -zxvf nacos.service..... 解压文件,出现一个nacos目录

 

2.nacos集群部署

进去到nacos/conf目录下,重点关注cluster.conf以及application.properties配置文件

 

2.1修改cluster.conf.example文件,配置3台机器的节点

重命名cluster.conf.example,去掉example,配置三台机器的地址和端口号,默认端口号是8848

 

2.2修改application.properties文件,配置数据库

首先使用MySQL数据库,需要在数据库中执行nacos-mysql.sql初始化数据库里的表之类的东西,注意如果版本小于5.6 sql语句中对当前时间的设置会报错,需要把

NOT NULL DEFAULT CURRENT_TIMESTAMP

改为:

DEFAULT NULL

 

另外配置mysql允许远程连接 修改数据库名=mysql中的表user中的字段host从localhost为%即可

然后分别修改nacos机器中他们的application.properties文件,在里面修改数据库配置

放开mysql的注释

spring.datasource.platform=mysql

db.num=1

db.url.0=xxx

db.user=xx

db.password=xxx

 

2.3 启动nacos

分别进入三台机器的bin目录,执行startup.sh,检查logs目录下的start.out启动日志,如果启动成功就可以了,访问任何一个节点的8848端口的/nacos地址,进入nacos控制台,可以看到nacos集群的具体情况

有可能出现不识别./startup.sh指令的情况,需要修改启动脚本的文本格式

vi startup.sh

输入  :set ff 看下是什么格式,如果不是unix,输入  :set ff=unix 回车,退出vi模式,这时执行./startup.sh启动nacos

最后观察日志启动成功之后,

在宿主机上输入任意虚拟机的ip:8848/nacos即可访问

StatefulSets nacos集群总是在重启 nacos集群问题_maven

 

 大功告成