摘要: 本文主要记录📝云服务器间IP映射与ssh免密登录的过程,以及补充学到的知识点,文章以图文形式呈现。因为学习需要,想了想还是把本地的集群环境都搭建到HECS云服务器上吧,不用修改自己电脑的重要配置。
- 所需条件:三台服务器(master、slave1、slave2)
- 我选的3台华为云服务器,每台2核4G,带宽2M
- 系统:CentOS 7.6
- 我的电脑是Mac版,一些终端命令与win有点区别(有的也补充了win版的)
一、服务器选择
温馨提示
最好三台服务器是同一个地方买的,不然IP差太多跨域映射非常慢
同一个地方买的,网络实例所属地域也最好一样
【我第一次搭建集群的时候,一主(腾讯云服务器)二从(华为云服务器),后面IP映射主与二从之间非常慢,虽然ssh免密什么的都成功了,但是这个乌龟🐢般的速度非常影响后面搭建的测试】
二、云服务器IP映射
- 修改主机名
- 查看主机网关与子网掩码
- 配置各节点网络
- 添加节点映射
- 关闭防火墙
- ping百度
⚠️以下内容三个节点都要操作噢,我以一个节点为例,其他两个同理
1.修改主机名
1 | [root@hecs-360472 ~]# vim /etc/hostname |
我的设置是一主master,二从slave1、slave2,注意三个节点的命名噢
2.查看主机网关与子网掩码
mac版
1 | [root@slave1 ~]# netstat -rn |
win版
ipconfig /all
⚠️斜杠是“/”不是“\”
自己查看对应子网掩码和默认网关
3.配置各节点网络
1 | [root@slave1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 |
其他两个节点同样操作噢,这里配置就是IPADDR不同,要是跨域的服务器GATEWAY和NETMASK也不一样
[root@slave1 ~]# vim /etc/resolv.conf
添加如下内容(后面可能还要再添加一次)
1 | nameserver 192.168.0.1(网关) |
参数解释
参数 | 解释 |
---|---|
BOOTPROTO=static | 使用静态路由协议,保持固定的IP |
ONBOOT=yes | 启动这块网卡 |
IPADDR | IP地址,这里的IP地址需要和规划的IP地址保持一致,为主机名和IP映射做准备 |
NETMASK | 子网掩码,通常是255.255.255.0 |
GATEWAY | 虚拟网关,通常都是将IP地址最后一个数位变成2 |
– | – |
DNS服务: | |
8.8.8.8 | GOOGLE公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用 |
8.8.4.4 | GOOGLE公司提供的DNS(辅DNS)主DNS:8.8.8.8 |
4.添加各节点映射
添加云服务器安全组
云服务需要设置添加安全组对方IP,后面配置ssh免密找不到其他节点
云服务器安全组配置以master为例
我添加的是对方公有IP,其他两个云服务器也是,添加对方的IP(由于是云端服务器,则直接用真实的公网IP)
[root@slave1 ~]# vim /etc/hosts
例如
1 | 192.168.185.1 master |
⚠️⚠️⚠️对应的服务器对自己操作时最好用自己的内网ip,如下图所示
此处,192.168.0.6为云服务器商提供的内网地址
*如果不改可能导致namenode无法启动
惨痛教训,呜呜呜,因为对内操作要内网地址
⚠️这个/etc/hosts文件只能有一个master、slave1、slave2,不然后面集群启动,会出问题
检验节点映射
互相ping一下
master
slave1
slave2
5.关闭防火墙
[root@slave1 ~]# vim /etc/selinux/config
1 | [root@slave1 ~]# systemctl stop firewalld |
三个节点都需要重启生效
6.ping百度
⚠️重启后出现如下错误,可能是因为namesever那重启后自动被改了,所以导致ping百度不通
1 | [root@slave1 ~]# ping www.baidu.com |
重新写下上面的resolv.conf[root@slave1 ~]# vim /etc/resolv.conf
[root@slave1 ~]# ping www.baidu.com
- slave1
- slave2
- master
三、ssh免密登录
- 创建密钥
- 拷贝密钥到各节点
- 节点间相互测试
1.创建密钥
[root@master ~]# ssh-keygen -t rsa
2.拷贝密钥到各节点
拷贝本密钥到三个节点上
1 | [root@master ~]# ssh-copy-id master |
其他两个节点上重复上述操作
⚠️如果拷贝本密钥到其他节点不成功,遇到这个情况先别慌,我们可以手动操作一下~
手动添加密钥
先把本节点对应的密钥拷贝一下
剩下两个同理
一共有这四个文件
理论:每台主机 authorized_keys 文件里面包含的主机(ssh密钥),该主机都能无密码登录,所以只要每台主机的authorized_keys 文件里面都放入其他主机(需要无密码登录的主机)的ssh密钥就行了。
- 手动添加
觉得有点绕的话,就确保authorized_keys和known_hosts文件里有这三个主机的密钥
可以每台主机都cat一下authorized_keys,缺少哪个主机就添加哪个,最终三个主机的authorized_keys文件如下图所示
- authorized_keys
同理
- known_hosts
⚠️如果你的known_hosts,有的主机没有出现IP地址,那可能是/etc/hosts这个文件里IP映射有问题,再回过头好好检查。
搭的过程中关键地方排查了没有问题就要快照,后面崩溃了就恢复到那个点重做
3.节点间相互测试
用ssh命令节点间相互测试下
[root@master ~]# ssh slave1
在A节点上免密登陆到了B节点,再敲logout就退出B节点了
到此为止,大数据平台搭建之节点基础配置就结束啦🍃,三个节点都需要配置,配置过程一定要细心哦,特别是IP那一块,错了后面就会很多报错,祝你成功!
参考资料
https://blog.csdn.net/pig2guang/article/details/85313410
-------------本文结束感谢您的阅读-------------
本文链接: http://example.com/2023/01/12/云服务器IP映射与ssh免密登录/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!