手把手教你使用kubeadm快速部署一个k8s集群
最近在学习和研究k8s,主要是如何搭建k8s环境。我在这搭建过程中踩了不少坑,有参考网上的博客资料,终于测试和总结出了一套可以自动化搭建k8s集群的方法。本文主要介绍如何使用kubeadm快速部署一个K8s集群,跟着操作来,你就能马上搭建成功,少走很多弯路。
1.背景
最近在学习和研究k8s,主要是如何搭建k8s环境。我在这搭建过程中踩了不少坑,有参考网上的博客资料,终于测试和总结出了一套可以自动化搭建k8s集群的方法。
本文主要介绍如何使用kubeadm快速部署一个K8s集群,跟着操作来,你就能马上搭建成功,少走很多弯路。
2.部署过程
2.1 环境准备
准备3台虚拟机如下,版本centos 7.9
IP | 备注 | 机器名称 |
192.168.126.175 | lmaster | lmaster |
192.168.126.176 | lnode1 | lnode1 |
192.168.126.177 | lnode2 | lnode2 |
2.2 配置文件
准备系统镜像、rpm安装包、脚本、配置文件如下:
文件名称 | 备注 | 必须性 |
CentOS-7-x86_64-DVD-2207-02.iso | centos7.9镜像,不一定要用 | 【可选】 |
cri-dockerd-0.3.14-3.el7.x86_64.rpm | cri-dockerd安装包 | 【必选】 |
befrore-install.sh | 关闭selinux的脚本 | 【必选】 |
install-k8s.sh | 安装k8s的脚本 | 【必选】 |
install-k8s-common.sh | 安装的辅助脚本 | 【必选】 |
uninstall-k8s.sh | 卸载k8s脚本,不一定要用 | 【可选】 |
kubeadm.yaml | kubeadm配置 | 【必选】 |
kube-flannel.yml | cni网络插件 | 【必选】 |
该资料清单,已经放到网盘,大家可以自取。
下载链接:https://pan.quark.cn/s/4b6c895f690a
提取码:3g8v
2.3 修改配置
在2.2提供的bash脚本是在本人的测试环境下制作和执行的,里面的一些配置,比如ip、机器名都是个人特有信息,大家拿到脚本后,是需要结合自己的环境去修改配置,才能去使用的。
主要是修改ip 和主机名称,其他信息不做修改。具体如下:
修改install-k8s-common.sh:
修改kubeadm.yaml:
修改install-k8s.sh (这个如何修改在后面安装k8s主结点,还会介绍):
2.4 安装-k8s主结点
MobaXterm远程连接k8s主结点:192.168.126.175,如下图:
将2.2中列出的配置文件和bash脚本上传到 /home ,如下图所示:
在/home下,输入下列命令:
chmod +x *.sh
输入下列指令,关闭selinux
./befrore-install.sh
输入下列指令,开始安装k8s主结点:
./install-k8s.sh
在install-k8s.sh执行过程中会有2次需要用户确认的过程:
第1次:以上↑↑↑↑↑↑↑主机配置hosts是否正确?默认为 no. Enter [yes/no]:yes
第2次:[reset] Are you sure you want to proceed? [y/N]::y
安装成功后,如下图所示:
注意:在“安装k8s_主结点_启动集群:初始化”时,界面会输出 如下信息,将里面的“kubeadm join 192.168.126.175:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:ead6f4bf1803873b23dc0689f119b6eb2958bf12d26f37454d03e5d67b147358”
保存下来,后面初始化node结点会用到:
2.5 修改install-k8s.sh
在本地修改install-k8s.sh文件,将 2.4拿到的kubeadmin join信息,按照下图修改:
这样修改后, 就能拿去初始化 node结点了。
2.6 安装-k8s从结点
MobaXterm远程连接k8s从结点:192.168.126.176,如下图:
将刚刚修改的install-k8s.sh文件和其他文件上传到 /home ,如下图所示:
在/home下,输入下列命令:
chmod +x *.sh
输入下列指令,关闭selinux
./befrore-install.sh
输入下列指令,开始安装k8s从结点:
./install-k8s.sh
在install-k8s.sh执行过程中会有2次需要用户确认的过程:
第1次:以上↑↑↑↑↑↑↑主机配置hosts是否正确?默认为 no. Enter [yes/no]:yes
第2次:[reset] Are you sure you want to proceed? [y/N]::y
安装成功后,如下图所示
2.7 安装-k8s从结点
MobaXterm远程连接k8s从结点:192.168.126.177,如下图:
将刚刚修改的install-k8s.sh文件和其他文件上传到 /home ,如下图所示:
在/home下,输入下列命令:
chmod +x *.sh
输入下列指令,关闭selinux
./befrore-install.sh
输入下列指令,开始安装k8s主结点:
./install-k8s.sh
在install-k8s.sh执行过程中会有2次需要用户确认的过程:
第1次:以上↑↑↑↑↑↑↑主机配置hosts是否正确?默认为 no. Enter [yes/no]:yes
第2次:[reset] Are you sure you want to proceed? [y/N]::y
安装成功后,如下图所示
3.验证
3.1 验证k8s集群安装
在k8s主结点192.168.126.175,执行下列命令,看搭建的集群是否成功?
kubectl get nodes
注意:这里可能要等1分钟左右,STATUS才会变成Ready.这个Ready就表示运行正常,搭建成功。
3.2 测试k8s集群
在k8s集群中创建一个pod,验证是否正常运行
在k8s主结点192.168.126.175,执行下列命令
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc
经过上面的操作,我们看到成功创建了一个名称为“nginx-7854ff8877-k5hf7”的pod,它的端口是32594。
通常集群的访问地址格式为http://NodeIP:Port ,进行访问。
那么nginx的地址是:http://192.168.126.175:32594、 http://192.168.126.176:32594、http://192.168.126.177:32594;
为了验证效果,打开浏览器,输入上面的3个地址:
那么,nginx部署成功,集群支持nginx的映射访问。
4. 管理面板kuboard
本次安装也安装了面板工具:kuboard;
Master主结点会默认安装kuboard多集群管理界面,方便管理k8s容器的一些基本的常用操作,包括服务部署、日志查看、负载导入导出等,虽然简单但是很实用。
4.1 登录kuboard
访问Master管理界面http://192.168.126.175/
默认账号:admin
默认密码:Kuboard123
4.2 如何使用
使用教程详见官网:Kuboard_Kubernetes教程_K8S安装_管理界面
5.结束
至此,我们已经成功通过kubeadm搭建了k8s集群。本文提供的脚本已经经过多次测试执行,是没有问题的。如有问题,建议自行根据异常提示去处理。另外,脚本中是指定了k8s、docker版本等,大家熟悉脚本后,可自行修改脚本配置,去安装执行。最后,再次感谢网络上的前辈们,我是看了相关资料,基于资料做了调整后,才能搭建成功。
6.参考文献
《Docker容器化K8s集群部署教程(一键部署sheel脚本)》
更多推荐
所有评论(0)