背景
- 在技术的学习中,我们常常需要在本地搭建一个集群、分布式环境,也就是要运行多台虚拟机,如何使这多台虚拟机互相通信呢?
- 例如,在学习Kubernetes时,我们需要搭建一个逼真的一主双从的集群环境,这时,就需要在本地开启多台虚拟机(一般为CentOS)。那么如何解决多台虚拟机的通信问题呢?
解决在本地物理机上的多台虚拟机互联网问题有以下两种方案
- 多台虚拟机同时使用“桥接”的网络连接模式
- 多台虚拟机同时使用“NAT”的网络连接模式
本文主要介绍在NAT模式下,多台虚拟机互联的操作方法
前置知识:VMware Workstation,NAT的网络模式,C类私网与网络掩码的概念
本文内容概览
安装CentOS
本文以CentOS7.6为例,在VMware Workstation上安装一台CentOS7.6,克隆出两台,总共三台虚拟机,逼真模拟一主双从环境。
配置hostname
- 分别在三台机器上执行:vim /etc/hostname
- 分别命名为master、node1、node2
- 注销从新登录,即可生效
设定主从地址
- master:192.168.232.100
- node1:192.168.232.110
- node2:192.168.232.120
以NAT连接
VMware的三种网络模式:
- 仅主机:VMware Network Adapter VMnet1,使得虚拟机仅能与主机通信;
- NAT:VMware Network Adapter VMnet8
- 桥接:VMware Network Adapter VMnet0,把虚拟机当做一个独立的机器,通过路由器连接到网络
三台机器全部使用NAT模式连接网络
在VMware的菜单栏打开“虚拟网络编辑器”:【编辑-虚拟网络编辑器】
- 查看NAT模式下的网络号
- 如上图,在本个VMware的NAT模式下,分配IP的网络号都是168.232.x
- 因为它的子网掩码为3个255,且是C类私网
- 也就是说,在本个VMware的NAT模式中,168.232.x都是可以互相通信的
点击【更改设置】,查看本个VMware基于NAT模式下的网关
master节点
根据VMware的NAT网络号,配置master节点的IP地址为:192.168.232.100
配置完毕后,先关闭,再开启ens33。进入Terminal查看IP信息:ifconfig
其中(223.5.5.5)为阿里云的DNS解析器
node1节点
根据VMware的NAT网络号,配置node01节点的IP地址为:192.168.232.110
node2节点
根据VMware的NAT网络号,配置node01节点的IP地址为:192.168.232.120
测试
检查三个节点可以互相通信,分别在三个节点上互ping
- 例如,在master节点ping节点node1和node2
- ping 192.168.232.110
- ping 192.168.232.120
添加主机名与IP的映射,分别在三台机器上进行如下操作:vim /etc/hosts
追加一下配置:
192.168.232.100 master
192.168.232.110 node1
192.168.232.120 node2
在物理主机上通过SSH连接虚拟机
- 检查SSH运行状态:systemctl status sshd,建议关闭防火墙(systemctl stop firewalld)
- 检查SSH是否允许root登录:vim /etc/ssh/sshd_config,其中PermitRootLogin配置项的值是否为:yes
- 物理机连接:ssh root@192.168.232.100
Name:
Email:
Link: