3、实现步骤
第一步:三台机器生成公钥与私钥
在三台机器执行以下命令,生成公钥与私钥
| ssh-keygen -t rsa |
|---|
执行该命令之后,按下三个回车即可,然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥),默认保存在/root/.ssh目录。
第二步:拷贝公钥到同一台机器
三台机器将拷贝公钥到第一台机器
三台机器执行命令:
| ssh-copy-id node1 |
|---|
在执行该命令之后,需要输入yes和node1的密码:
第三步:复制第一台机器的认证到其他机器
将第一台机器的公钥拷贝到其他机器上
在第一台机器上指行以下命令
| scp / root /. ssh / authorized_keys node2 :/ root /. sshscp / root /. ssh / authorized_keys node3 :/ root /. ssh |
|---|
执行命令时,需要输入yes和对方的密码
第三步: 测试SSH免密登录
可以在任何一台主机上通过ssh 主机名命令去远程登录到该主机,输入exit退出登录
例如:在node1机器上,免密登录到node2机器上
| ssh node1exit |
|---|
执行效果如下:
1.1. 三台机器时钟同步
为什么需要时间同步
因为很多分布式系统是有状态的, 比如说存储一个数据, A节点 记录的时间是1, B节点 记录的时间是2, 就会出问题。
时钟同步方式
1.1.1. 方式一:通过网络进行时钟同步
通过网络连接外网进行时钟同步,必须保证虚拟机连上外网
启动定时任务
| crontab -e |
|---|
随后在输入界面键入以下内容,每隔一分钟就去连接阿里云时间同步服务器,进行时钟同步
| */ 1 ***** ***** ***** ***** / usr / sbin / ntpdate ntp4.aliyun.com ; |
|---|
1.1.2. 方式二:通过某一台机器进行同步
在业务环境中,有时候为了安全,大数据集群的节点不允许连接外网,这时,我们可以采用第二种方式来进行时钟同步。
以192.168.88.161这台服务器的时间为准进行时钟同步
第一步 :在node1虚拟机安装ntp并启动
安装ntp服务
| yum **-**y install ntp |
|---|
启动ntp服务
| systemctl start ntpd |
|---|
设置ntpd的服务开机启动
| #关闭chrony,Chrony是NTP的另一种实现systemctl disable chrony#设置ntp服务为开机启动systemctl enable ntpd |
|---|
第二步: 编辑node1的/etc/ntp.conf文件
编辑node1机器的/etc/ntp.conf
| vim / etc / ntp.conf |
|---|
在文件中添加如下内容(授权192.168.88.0-192.168.88.255网段上的所有机器可以从这台机器上查询和同步时间)
| restrict 192 . 168 . 88 . 0 mask 255 . 255 . 255 . 0 nomodify notrap |
|---|
注释一下四行内容:(集群在局域网中,不使用其他互联网上的时间)
| #server 0.centos.pool.ntp.org#server 1.centos.pool.ntp.org#server 2.centos.pool.ntp.org#server 3.centos.pool.ntp.org |
|---|
去掉以下内容的注释,如果没有这两行注释,那就自己添加上(当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步)