cisca
发布于 2026-04-20 / 9 阅读
0
0

k8s + kubeedge实验

(注:本贴为记录贴,仅记录做这个实验时的完整的整个过程,非教程!里面从零开始把我遇到的各种坑以及解决方法全贴上来了)

任务要求:

1. 3台机器,一台安装k8s,两台安装Kubeedge

2. 发布一个pipeline任务,分别运行在两个端上(运行时间足够长)

3、断开k8s与其它两个机器的网络

4、在另外两台机器上模拟进程失效,观察现象

5、在断网条件下是否可以直接给kubeedge发送新指令

虚拟机环境:

ubuntu server 22.04,2C4G,30GB:k8s

ubuntu server 22.04,1C2G,30GB:kubeedge

ubuntu server 22.04,1C2G,30GB:kubeedge

网卡1(公网):NAT模式

网卡2(内网):

  • 点击界面最下方的 “添加...” 按钮。

  • 选中 “网络适配器”,点“完成”。

  • 此时左侧会多出一个“网络适配器 2”。点击它,在右侧选中 “LAN 区段”

  • 点击下方的 “LAN 区段...” 按钮 -> 点 “添加” -> 取名为 edge-net -> 点“确定”。

  • 最后,确保这块新网卡的下拉菜单里选中了刚建的 edge-net。

配置LAN:

  • Master: 192.168.1.10

  • Edge-node1: 192.168.1.20

  • Edge-node2: 192.168.1.30

为ens34配置IP地址:

  1. 打开配置文件:sudo vi /etc/netplan/00-installer-config.yaml

  2. 按 i 进入编辑模式,按照下面的格式修改:

3. 保存退出:按 Esc,输入 :wq 并回车。

4. 应用并生效:sudo netplan apply

三台服务器都配置好LAN后可检查一下是否能ping通:


永久关闭swap:


关闭休眠功能,省得ssh连接总是需要重连:

sudo vi /etc/ssh/sshd_config


安装容器运行时(containerd):


master节点安装k8s核心三件套:


初始化master节点:

在执行第二步时出现问题,containerd 的配置文件里,写死了去国外的 registry.k8s.io 去拉取 pause 镜像,需要强行把 containerd 配置文件里的那个“国外地址”改成“阿里云地址”:


master节点安装网络插件:

注意,安装插件时需要等待一段时间,可以用kubectl get pods --all-namespaces命令查看目前状态:




在master上部署cloudcore:

第三步因为没有路径导致执行不成功,应加上路径:


使master主机能运行cloudcore pod:

反复失败,最终成功是:


在master节点获取token:

获取到的token为:cef8a9e4b9cca60e41c967490c5c63eda8836948fb8d432bb7b3d4fd234466b6.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3NzY1MTEwNzd9.UBQtcEKc74VSQYPGcLiYtDEIitKOgDAQY95_9UJ6p78

两个edge节点安装keadm:


第三步失败,源的问题,换源:

再次失败,containerd的问题:

还是失败!应该走内网:


还未准备好:

上述步骤搞不定(github网络问题),从master主机上下载:

上述命令不行,换下面的:

还是不行,一直卡在terminating状态,强制删除一下:

还不行,再来:

还是不行!接着解决:

终于解决了!!!!!:


使edge节点运行计数器程序:



很久没创建成功,推测是源的问题,进行修改:

还是没解决,到edge node查看情况,打印日志,发现:

edge不把真正的报错信息发给master,master那边describe根本不知道具体原因。

大功告成!:

但是master那边看不到,connection refused,去edge那边:



现在开始进行断网实验:

edge-1节点任务仍在运行:

master这边edge-1节点已经notready了

但pods仍显示running,原因如下:


现在模拟进程失效实验:

第一行命令搜不到,换成下面这个:

节点重新起来了:


master节点在断网条件下发送新指令,将5秒一条改成15秒一条:

edge1(还是5秒一条):


edge2(没有立刻把老员工杀掉,而是新的跑起来之后再杀掉):


最后一步,把edge1重新联网!:

edge1上的pod被毁尸灭迹了!现在两个pod都跑在edge2上了!

解释:


让pod重新跑在edge1上:


成功!




















评论