在一台物理机上创建3个虚拟机搭建k8s集群(一)

2019年10月7日,参考链接:

https://blog.csdn.net/qq_38252499/article/details/99214276

https://blog.csdn.net/cndmss/article/details/80149952

https://blog.csdn.net/C4Jem/article/details/90060012

https://blog.csdn.net/qq_27639619/article/details/88645818

注意:(后来由于NAT模式,开了端口也不能ping同,选择桥接模式的话,每次更换网络宿主机IP地址都会变,因此,选择了在一台物理机上搭建)

一:基础环境配置

(1)两台物理机配置(全新):

CPU:i7-7700 3.6GHZ

内存:8G

硬盘:1T

操作系统:win7 64位

(2)每台物理机上创建两个虚拟机:

CPU:1

内存:1G

硬盘:20G

网络配置:NAT

操作系统:CentOS7.7

二:搭建虚拟机

(1)软件准备:

下载vmware workstation 14、CentOS-7-x86_64-DVD-1908(阿里云下载https://mirrors.aliyun.com/centos/7.7.1908/isos/x86_64/)、jdk-8u221-linux-x64.tar.gz(官网下载,需注册https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

(2)vmware workstation 14安装与配置

第一步:新建虚拟机

第二步:选择典型安装

第三步:选择稍后安装操作系统

第四步:选择linux CentOS7 64位

第五步:为虚拟机起名字,并保存虚拟机到某一个地址

第六步:选择磁盘大小(实验20G足够了,其他默认)

第七步:查看信息,点击完成,创建虚拟机

第八步:可以看到新建的虚拟机,下图中包含了两个我自己创建的,网络适配器选择NAT模式,之后点击编辑虚拟机设置,开始安装操作系统步骤

第九步:在使用ISO映像文件中选择下载好的CentOS-7-x86_64-DVD-1908

第十步:点击开启此虚拟机,进入系统安装界面

第十一步:常规安装方法不再详细描述,可选择最小安装。安装期间可以设置root用户的密码。参考https://blog.csdn.net/cndmss/article/details/80149952

三:虚拟机配置

1. 安装JDK(java以备后续集群所需)

(1)在根目录下输入

mkdir -p software

创建了一个文件夹,用于存放之前下载的jdk-8u221-linux-x64.tar.gz;-p是为了保证文件夹能够创建成功;

(2)在win7主机上下载并安装xshell,利用xshell将jdk-8u221-linux-x64.tar.gz文件,上传到虚拟机的software文件夹下;

(3)在software目录下,输入命令

mkdir -p /usr/lib/jvm
tar -zxvf jdk-8u211-linux-x64.tar.gz -C /usr/lib/jvm

(4)用vi命令打开profile设置环境变量,输入

vi /etc/profile

在文件前面添加以下代码

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_221
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

注意,jdk1.8.0_221是对应刚才下载的版本,随着官网的更新,该版本会变化,查看版本,可进入/usr/lib/jvm/目录下查看。

(5)执行profile文件,输入

source /etc/profile

2. 配置网络

(1)系统安装后,此时如果主机是通过路由器自动获取IP地址上网的,那么虚拟机由于选择了NAT模式,应该也是可以联外网的。但是,由于没有将虚拟机的网卡激活,此时可能无法联网。因此需要先编辑ifcfg-ens33文件(名称可能根据不同的机器会有变化)激活网卡:

cd /etc/sysconfig/network-scripts/
vi ifcfg-ens33

将ONBOOT=no 改为 yes,然后执行命令 service network restart重启网络服务。

(2)查看网络IP地址

此时想查看网络状态是无法用ifconfig命令的,因为用了最小安装。ip addr命令可以用。但是习惯了ifconfig命令,所以还是要安装ifconfig命令。linux 系统下的 ifconfig 命令找不到,需要安装 net-tools,经过以上网络配置后,虚拟机是可以连接互联网的,此时输入

yum install net-tools

即可使用ifconfig查看网络配置。

(3)配置静态IP  参考 https://blog.csdn.net/cndmss/article/details/80149952

以上我们已经动态获取了虚拟机的IP,但动态IP可能会随着虚拟机的重启而发生变化,特别是存在多台虚拟机都动态获取IP时,不太利于我们的开发和测试,因此,统一配置静态IP是有必要的。
第一步:设置VMware虚拟机的网关。



设置完成后,依次点击“确定”保存。值得注意的是,端口转发部分,我添加了两个主机端口,其目的是为了让另外一台主机和其虚拟机能够通过端口转发的模式访问到本主机上的两个虚拟机。访问方法:在另外一台主机上利用ssh [email protected] 6000 即可访问到192.168.5.101这台虚拟机。其中192.168.43.100为主机的地址。此处原理课参考NAT模式下虚拟机之间互联互通。注意,两台win7主机的防火墙要关闭。
第二步:配置虚拟机网卡文件ifcfg-ens33。

如图所示,将BOOTPROTO=dhcp修改为BOOTPROTO=static,然后再添加指定的静态IP、网关等配置,修改后的整体配置如上图所示。

需要注意的是,如果此处不添加DNS,可能会出现无法ping通外网的情况,ping www.baidu.com 报name or service not known错误,因此,我的操作是编辑DNS文件,将DNS添加进去,输入命令

vi /etc/resolv.conf

修改文件为

修改完成保存,然后执行命令 service network restart重启网络服务。

3. 配置yum源,参考 https://blog.csdn.net/qq_27639619/article/details/88645818

在配置yum源之前,我们需要做一些简单的工作,首先是安装一些工具,如vim  wget等。由于之前已经为网络扫清了障碍,因此只需要yum install vim,yum install wget等就可以迅速安装好这些工具了。

安装工具后,还需关闭系统的可视化模式:CentOS 7 安装好后,登录时默认启用了很占资源的图形界面,若启动多个虚拟机更会卡的飞起。因此,我们可以通过如下命令切换默认的登录方式:

命令模式

systemctl set-default multi-user.target

图形模式

systemctl set-default graphical.target

在此运行命令模式即可,注意,上面的命令执行后重启生效。

接下来,就可以正式配置yum源了。不建议使用CentOS 7 自带的yum源,因为安装软件和依赖时会非常慢甚至超时失败。这里,我们使用阿里云的源予以替换,执行如下命令,替换文件/etc/yum.repos.d/CentOS-Base.repo:

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 
yum makecache

4. 关闭防火墙

防火墙一定要提前关闭,否则在后续安装K8S集群的时候是个trouble maker。执行下面语句关闭,并禁用开机启动:

systemctl stop firewalld & systemctl disable firewalld

5. 关闭Swap
类似ElasticSearch集群,在安装K8S集群时,Linux的Swap内存交换机制是一定要关闭的,否则会因为内存交换而影响性能以及稳定性。这里,我们可以提前进行设置:执行 swapoff -a可临时关闭,但系统重启后恢复。用vim编辑/etc/fstab,即:

vim /etc/fstab

注释掉包含swap的那一行即可,重启后可永久关闭,如下所示:

以上,基本完成了虚拟机的配置。

四:克隆虚拟机

参考 https://blog.csdn.net/cndmss/article/details/80149952

经过以上步骤,我们已经创建了一台虚拟机,并且配置好了静态IP、JDK、yum源、防火墙等基础环境,这个过程是复杂的,如果我们想新建一个虚拟机,重新进行此过程将会是一个非常痛苦的事情。幸好,我们可以通过VMware的克隆功能进行快速的扩充新的虚拟机。

第一步:先将虚拟机电源关闭

第二步:在我的计算机下,右键我们创建的虚拟机,选择管理->克隆

第三步:点击下一步进入下图界面,选择“虚拟机中的当前状态”,下一步

选择完整克隆

为克隆后的虚拟机起名,并保存在相应位置

经过以上步骤后,完成了虚拟机的克隆。下图中,master为创建的虚拟机,node1为克隆的虚拟机。

第四步,在另外一台主机上安装vmware,并将创建的虚拟机master和克隆的虚拟机node1复制过去,在VMware中打开后,改名为node2 和node3。

第五步,修改IP,从master到node3,IP地址为192.168.5.101、192.168.5.102、192.168.5.103、192.168.5.104,同时,按照之气的网关设置操作,设置其网关和转发端口。

第六步,修改hostname,目前由于克隆,所有虚机的hostname 都为localhost,利用vi /etc/hostname命令,依次修改为s1 s2 s3 s4。

至此,完成了4台虚机的构建。

五:为每台虚机安装docker

安装K8S必须要先安装Docker。这里,我们使用yum方式安装Docker社区最新版,但是由于墙的原因,使用yum安装经常会超时失败。我们使用添加阿里云的Docker仓库方式解决:

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache

执行此命令会出现 yum-config-manager: command not found错误,这个是因为系统默认没有安装这个命令,这个命令在yum-utils 包里,可以通过命令yum -y install yum-utils 安装就可以了。之后再运行上述命令,就可将阿里云Docker仓库添加入yum源中。

执行以下命令,安装最新版Docker:

yum install docker-ce -y

安装完成后,运行docker --version可以查看是否安装成功,出现以下界面表示安装成功。

启动Docker服务并激活开机启动:

systemctl start docker & systemctl enable docker

验证一下,是否成功,输入:

docker run hello-world

出现以上界面表示安装成功。

所有虚机执行完以上操作后,完成docker的安装。接下来,就可以开展K8S的安装部署了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章