目录
1、免密登录
1.1 为什么要免密登录
Linux集群节点众多, 所以一般在主节点启动从节点, 这个时候就需要程序自动在主节点登录到从节点中, 如果不能免密就每次都要输入密码, 非常麻烦。
1.2 免密 SSH 登录的原理
1. 需要先在 B节点 配置 A节点 的公钥
2. A节点 请求 B节点 要求登录
3. B节点 使用 A节点 的公钥, 加密一段随机文本
4. A节点 使用私钥解密, 并发回给 B节点
5. B节点 验证文本是否正确
1.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/.ssh scp /root/.ssh/authorized_keys node3:/root/.ssh |
执行命令时,需要输入yes和对方的密码
第三步:测试SSH免密登录
可以在任何一台主机上通过ssh 主机名命令去远程登录到该主机,输入exit退出登录
例如:在node1机器上,免密登录到node2机器上
ssh node1 exit |
执行效果如下:
2、时钟同步
2.1 为什么需要时间同步
因为很多分布式系统是有状态的, 比如说存储一个数据, A节点 记录的时间是1, B节点 记录的时间是2, 就会出问题。
时钟同步方式
方式一:通过网络进行时钟同步
通过网络连接外网进行时钟同步,必须保证虚拟机连上外网
启动定时任务
crontab -e |
随后在输入界面键入以下内容,每隔一分钟就去连接阿里云时间同步服务器,进行时钟同步
*/1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com; |
方式二:通过某一台机器进行同步
在业务环境中,有时候为了安全,Linux集群的节点不允许连接外网,这时,我们可以采用第二种方式来进行时钟同步。
以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 |
去掉以下内容的注释,如果没有这两行注释,那就自己添加上(当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步)
server 127.127.1.0 fudge 127.127.1.0 stratum 10 |
配置以下内容,保证BIOS与系统时间同步
vim /etc/sysconfig/ntpd |
添加一行内容
SYNC_HWLOCK=yes |
第三步:另外两台机器与第一台机器时间同步
另外两台机器与192.168.88.161进行时钟同步,在node2和node3机器上分别进行以下操作
crontab -e |
添加以下内容:(每隔一分钟与node1进行时钟同步)
*/1 * * * * /usr/sbin/ntpdate 192.168.88.161 |
【下一章】
【往期回顾】
一、服务器准备
二、设置三台虚拟机的内存、MAC地址
三、使用CRT连接三台虚拟机
四、设置主机名和域名映射
五、关闭三台虚拟机的防火墙和Selinux