在上一篇我们介绍了如何在windows下安装虚拟机,在虚拟机上安装CentOS7.9,并且在系统安装完成后配置了固定ip和系统时间。
在食用本篇之前,如果上述操作没有做过,可以先移步 windows安装VMware虚拟机(附带CentOS7部署)
但是在分布式、大数据体系下,为了提高程序的高可用,单机是远远不够的,这里就需要搭建多台机器组成集群,那么本篇就给大家打来CentOS7.9集群部署。
集群规划
ip地址 | 节点名称 |
192.168.10.128 | master |
192.168.10.129 | slave1 |
192.168.10.130 | slave2 |
上一篇我们搭建了一台机器,已经配置了固定ip为192.168.10.128,接下来需要搭建剩下两台。
在操作之前我们先把上一台虚拟机改名为master
选中 CentOS 7 64 位 讲名字改为master
右键master,选择管理,然后克隆,在克隆之前需要把虚拟机关机
关机虚拟机
右键master,选择管理,然后克隆,进入克隆向导,点击下一步
继续下一页
选择完整克隆
配置虚拟机名称和存放位置,然后点击完成
点击关闭
slave1创建出来了
但是还需要配置ip,启动虚拟机,然后进入虚拟机,打开终端,通过su root命令切换至root账户下,修改网络配置
vi /etc/sysconfig/network-scripts/ifcfg-ens33
将ip地址改为192.168.10.129
重启网络 service network restart
使用 ifconfig 查看ip
测试网络是否通互联网 ping www.baidu.com,如下图所示,代表没有问题
用上述同样的方式将slave2创建出来,这时候就有三台机器了
使用外部工具连接虚拟机(FinalShell)
外部工具太多了,还有xshell等等,看个人喜欢,这里我就使用FinalShell了
这里我们可以按照上图操作,将三台机器都创建出来,然后通过master进行连接。
配置hosts
Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。
用户一定要在root账号下
vi /etc/hosts
添加
192.168.10.128 master 192.168.10.129 slave1 192.168.10.130 slave2
保存退出 wq!
使用 source /etc/hosts 使配置文件即刻生效
source /etc/hosts
通过远程拷贝,将刚才配置好的hosts文件传给slave1和slave2,选择yes输入密码即可
scp -r /etc/hosts root@slave1:/etc/ scp -r /etc/hosts root@slave2:/etc/
集群免密
使用ssh-keygen生成秘钥,一直回车就可以了
将生成的公钥拷贝到自己这台机器上,一直回车,输入密码123456就可以了
ssh-copy-id master
其实就是在 /root/.ssh/目录下生成了公钥和私钥,然后公钥给自己生成了authorized_keys,我们只需要将这个目录下文件传到slave1和slave2上就可以相互ssh免密登录了
scp -r /root/.ssh/ root@slave1:/root/.ssh/ scp -r /root/.ssh/ root@slave2:/root/.ssh/
使用ssh命令可以免密登录了
集群时间同步
时间同步的方式:找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间。
在所有节点关闭ntp服务和自启动
直接复制以下命令执行
ssh master systemctl stop ntpd systemctl disable ntpd ssh slave1 systemctl stop ntpd systemctl disable ntpd ssh slave2 systemctl stop ntpd systemctl disable ntpd ssh master
修改ntp配置文件(以下只在master上执行)
vi /etc/ntp.conf
通过set nu 查看行号
修改1(授权192.168.10.0-192.168.10.255网段上的所有机器可以从这台机器上查询和同步时间)
修改2(集群在局域网中,不使用其他互联网上的时间)
添加3(当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步)
修改/etc/sysconfig/ntpd 文件
vi /etc/sysconfig/ntpd
增加内容如下(让硬件时间与系统时间一起同步)
SYNC_HWCLOCK=yes
重新启动ntpd服务
systemctl start ntpd
设置ntpd服务开机启动
systemctl enable ntpd
接下来是在slave1和slave2上都要进行的操作
ssh slave1 crontab -e
编写定时任务
*/10 * * * * /usr/sbin/ntpdate master
同样的操作在slave2上也执行一次