首先公布一下虚拟机环境

master节点和work节点的主机环境如下:
使用:

lsb_release -a

请添加图片描述
外部物理机环境为:
请添加图片描述
在这个情况下,我们的虚拟机也是基于ARM架构的。
这里,我在子节点加入master节点的过程中,一直出现timeout=10的超时现象,通过telnet命令尝试进行网络端口连通性测试,发现无法联通。
但是通过ping命令可以直接访问,猜测是防火墙的问题。
尝试通过命令:

systemctl stop firewalld
systemctl stop iptables

但是会显示无法找到firewalld和iptables。
我们尝试使用apt-get remove iptables,成功发现系统中竟然存在一个iptables防火墙。
我们使用apt-get remove命令删除软件包之后,我们发现docker环境、kubectl、kubeadm、kubelet服务全部被删除了。
竟然这样,我们只能重新安装我们的docker、kubectl、kubradm、kubelet环境。
由于之前的安装可能存在一些遗留的数据,我们需要根据安装过程中的报错信息,将遗留文件删除。

重新进行文章:

https://editor.csdn.net/md/?articleId=123311993
https://editor.csdn.net/md/?articleId=123316940

所展示的kubernetes环境配置,我们将master节点上线,并根据搭建时提供的kubeadm join命令将子节点加入master节点,
在这里我们需要提现配置网络yaml文件,并将子节点的swap功能关闭
关闭命令:

swapoff -a

当使用

free -m

命令查看后,如果swap空间都是0,那么意味着我们成功关闭了swap功能。
请添加图片描述

当swap功能关闭后,我们可以使用join命令加入master节点。如果加入过程中出现故障,可以参考如下命令:

swapoff -a
kubeadm reset
rm /etc/cni/net.d/* -f
systemctl daemon-reload
systemctl restart kubelet

同时需要根据join时的提示命令对应的删除遗留文件。

在安装过程中可以使用ping命令检测网络连通性。
请添加图片描述
并提前检测master节点的status是否处于ready状态。
请添加图片描述

同时我们需要确认是否所有的k8s的pods 都处于Runing状态。
如果pods没有处于running状态,我们根据k8s的pods等同于docker容器,可以通过docker ps命令查看docker容器的id。并通过docker logs + id来查看pods 的日志信息。

具体效果图请添加图片描述

同时需要时刻关注docker和kubelet的服务状态,如果服务出现问题,需要使用journalctl -xeu + 服务名来查询服务的logs信息,并通过报错代码段通过搜索引擎进行查找相应的解决方案。
请添加图片描述
请添加图片描述

需要注意的是,如果通过apt-get install docker命令安装的docker或者snap install docker命令安装的docker服务,在systemctl restart docker命令中将会显示docker服务无法找到,解决方案便是运行官方的docker安装脚本:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

请添加图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐