Kubernetes核心原理和搭建 下

5.3 Kubernetes集群搭建

​        虚拟机环境我们在上边已经搭建好了,接下来我们就该搭建Kubernetes集群,我们将现在的虚拟机作为主节点,先安装Kubernetes,之后再复制出两个虚拟机作为工作节点。

5.3.1 安装Kubernetes

​        我们可以参考Kubernetes官方文档进行安装Kubernetes,下面是官方文档网址:https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/, 官方仓库因为被墙的原因我们无法使用,所以还是使用阿里云的仓库,执行以下命令添加kubernetes仓库: 
Linux会对我们的访问进行控制,所以需要关闭,如下图所示:

5.3.2 安装kubelet、kubeadm、kubectl

执行以下的指令安装Kubernetes的kubelet、kubeadm、kubectl,如下图所示:
执行以下的指令配置kubelet的cgroup drive,要和docker的cgroup drive保持一致,如下图所示:
执行以下指令,启动kubelet
但是启动kubelet会失败,因为缺少证书,但是不用担心,之后我们在执行kubeadm init命令的时候会创建证书,这里不启动也不影响后续的配置。

5.3.3 下载Kubernetes的Docker镜像

​        接下来我们需要使用Kubernetes官方提供的kubeadm工具来初始化Kubernetes集群,但是kubeadm init默认会访问谷歌服务器,使用的Docker镜像仓库是k8s.gcr.io,国内是无法访问的,我们可以使用docker.io/mirrorgooglecontainers中转一下,所以需要执行以下命令,如下图所示:  
但是coredns没包含在docker.io/mirrorgooglecontainers中,所以需要手工到coredns官方镜像转换下,执行以下命令进行操作,如下图所示: 
最后通过“docker images”查看所有的镜像,会发现所有镜像都已经下载完成,如下图所示:

5.4 复制虚拟机

​        上面执行完成,Kubernetes就已经安装完毕了,接下来就需要复制虚拟机将其他节点创建出来。

5.4.1 复制虚拟机

​        关闭之前的虚拟机,在VMware的界面中,右键点击第一个节点,我这里叫做K8S_Node1,选择“管理”选项中的“克隆”选项,开始复制虚拟机,如下图所示:
进入到选择克隆源的选择,选择“虚拟机中的当前状态”选项,然后点击“下一步”按钮,如下图所示:
在弹出的选择克隆类型的窗口中选择“创建完整克隆”选项,点击“下一步”按钮,如下图所示:
在弹出的设置新的虚拟机名称的窗口中设置新的虚拟机的名称为K8S_Node2,并设置保存位置,然后点击“完成”按钮,进行复制操作,如下图所示: 
重复上面的步骤复制出名称为K8S_Node3的虚拟机。

5.4.2 设置虚拟机网络

复制虚拟机结束之后,我们会发现三个节点ip为:
  • K8S_Node1:192.168.149.129
  • K8S_Node2:192.168.149.130
  • K8S_Node3:192.168.149.131
但是我们还需要进行一些配置,以便后续操作可以配置连接,这里以K8S_Node1为例:
  • 使用“vi”指令编辑“/etc/hostname”文件,将hostname改为k8s-node1,注意这里不能大写,不能使用“_”,不然后续的Kubernetes配置会出问题,如下图所示:


使用“vi”指令编辑“/etc/hosts”文件,在其最后添加192.168.149.129  k8s-node1,如下图所示:

配置完毕之后,重启生效,剩下的两个节点也是如此的配置,这里不再演示。

5.5 创建Kubernetes集群

​        前面的准备工作都已经准备好了,接下来我们就可以开始创建Kubernetes集群了,这里我们使用之前安装的kubeadm来快速、方便的创建一个Kubernetes集群。

5.5.1 初始化Kubernetes集群

在主节点(K8S_Node1)上执行以下的命令,如下图所示:
当看到如下信息时,就表示Kubernetes集群初始化成功了,如下图所示:
我们需要将初始化成功的提示信息中的kubeadm join记录下来(之后会使用到),同时需要执行提示信息中关于以下的几个指令,如下图所示: 

5.5.2 创建网络

​        当初始化好Kubernetes集群之后,我们还需要配置网络,以便实现各个节点之间的通讯,设置网络可以使用Calico或者是flannel,这里我们采用flannel来设置网络,如下图所示:

5.6 配置Kubernetes集群

​        当Kubernetes集群初始化成功并设置好网络之后,我们就需要将Pod调度到Master上,因为Kubernetes默认是不会将Pod调度到Master中,所以我们需要手动设置。

5.6.1 将Master作为工作节点

可以执行以下命令,将Master节点作为工作节点,如下图所示:

5.6.2 将其他节点添加到集群

​        在K8S_Node2和K8S_Node3的节点上执行K8S_Node1节点进行kubeadm init初始化集群成功之后提示的kubeadm join指令,将K8S_Node2和K8S_Node3添加到集群中,如下图所示:
如果kubeadm join指令失败了,可以执行kubeadm reset进行重置,然后再次执行kubeadm join。
最后我们通过“kubectl get nodes”查看节点是否添加到集群中,如下图所示:
到此,Kubernetes集群就搭建完毕了。

6. 总结

​        通过上述的案例,我们就可以把Kubernetes集群搭建完成,之后我们可以在此基础上继续搭建Kubernetes的Dashboard,也可以在Kubernetes部署nginx、redis等软件。总之,通过Kubernetes我们可以很方便的进行分布式、集群操作,很方便的实现在物理机、虚拟机或者是云上进行项目的部署和迁移。​      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值