本来一直想使用云主机做实验的,没打算在本地安装虚拟机的,但因为后续准备安装kubernetes,今天在官网上大概看了下安装指导,有介绍minikube安装的,是入门学习使用的,可以安装在自己笔记本电脑或者台式机上,需要借助VirtualBox、VMware Workstation、KVM等虚拟化软件来使用的,所以还是搬出了之前练习过的VirtualBox,先在本地安装好虚拟机,再试着安装一下minikube。
1)Oracle VirtualBox 6.0 软件
2)centos-7-x86_64-Minimal-2003.iso 镜像文件
网上有很多优秀的VirtualBox安装教程,在此就不过多介绍了,在windows上安装,基本上就是“下一步”操作即可(建议安装目录不要选在C盘),下面就从新建虚拟机和CentOS安装开始吧。
步骤一:在VirtualBox中新建虚拟机,考虑到CentOS Minimal版本占用资源低,所以我基本采用了系统默认配置,单核CPU+1GB内存+8GB硬盘,网络部分我选择 “桥接模式”,基本上满足了我的需求,可以通过SSH连接虚拟机,虚拟机也可以上网。
步骤二:开始安装CentOS 7.8 Minimal系统。CentOS系统镜像可以从官网下载,也可以在阿里云等镜像仓库下载,我选择了后者:http://mirrors.aliyun.com/centos/7/isos/x86_64/ 镜像文件大概1GB(注意:Minimal版本系统是没有图形化界面的,甚至有些常用命令包都没有,需要后期手动安装和设置)
选择好了镜像文件后,点击“启动”,开始虚拟机的安装。详细的安装过程,网上有很多介绍,主要就是一些系统设置,比如时间、语言、自动分区、网络配置、登录密码、访客账户设置等,主要是把带“!”的设置完成,就可以开始安装了。安装完成后选择重启。
步骤三:配置虚拟机网络,通常有“仅主机”、“桥接”、“内部”、“NAT网络转换”四种模式,配置起来也是挺费神的(这是我更喜欢用“云主机”做实验的原因之一),相关概念在网上学习了,但我个人最常用的还是“仅主机”和“桥接”,“仅主机”网卡会设置为静态IP地址,同时保证“仅主机”这张网卡的网关和本地PC网络适配器中的Virtual Adapter网关设置一致,否则网络不通。
按照网上的建议,虚拟机启动后第一件事情,我就把防火墙和NetworkManager服务给停止,并永久禁用了。
systemctl stop firewalld
systemctl disable firewalld
systemctl stop NetworkManager
chkconfig NetworkManager off
下面以桥接网络为例:
注意:虚拟机启动后,通过ip addr查看,可能没有获取IP地址,需要启动NetworkManager服务,才能生效,否则使用systemctl start network.service或service network start命令都会失败。
systemctl start NetworkManager
ip addr
桥接网络模式下,虚拟机IP地址和本地PC无线适配器的IP地址在一个网段,默认网关是一致的。
步骤四:验证虚拟机环境。试着ping一下公网,发现可以通,同时本地PC也可以通过SSH连接到虚拟机上,说明安装配置成功了。顺便把ifconfig, tree, psmisc, vim等命令包也安装了。
装好了本地的虚拟机,下一步就准备安装minikube,看一下用于学习的kubernetes工具是如何使用的。
1)自己测试了一下“仅主机”、“桥接”、“网络地址转换(NAT)”三种网络模式,网上也看了一些帖子,始终没能简单明了的搞清楚这三者的使用场景和本质区别,只分享一下我测试的结果,期待有高人指点。
仅主机Host-only模式:网卡配置静态IP地址、子网掩码、默认网关,本地PC可以ping通虚拟机,也可以通过SSH连接到虚拟机上,但虚拟机ping不通VirtualBox Host-Only Network的IP地址,也就是默认网关,实在没想明白到底是正确还是错误。
桥接网络模式:网卡配置dhcp,自动获取IP地址,且IP地址与本地PC无线网络适配器IP地址在一个网段,本地PC既可以ping通虚拟机,也可以通过SSH连接到虚拟机,而虚拟机既可以ping通本地PC无线网络适配器默认网关,也可以正常上网,因此这种网络模式是我最喜欢的,就是省事儿。
网络地址转换(NAT)模式:网卡配置dhcp,自动获取IP地址,但IP地址是10.0.4.X网段的,虚拟机可以ping通本地PC无线网络适配器IP地址,也可以正常上网,只是本地PC无法ping通虚拟机,也无法通过SSH连接到虚拟机,没想清楚这种网络模式要使用在什么场景。
2)可能会遇到systemctl restart network.service或service network restart这两种命令重启网络失败,且通过ip addr查看,网卡没有获取IP地址,只能通过systemctl start NetworkManager命令启动,然后再次查看,网卡可获取IP地址。
3)在/etc/sysconfig/network-scripts/目录下,只发现了第一张网卡的配置文件ifcfg-enp0s3,没能发现第二张网卡(桥接模式)和第三张网卡(网络地址转换NAT模式)的配置文件,ifcfg-enp0s8,ifcfg-enp0s9,但虚拟机网络运行正常,可以通过ip addr查看到IP地址。