【kubeedge+云服务器+树莓派】边端配置

树莓派配置

树莓派配置时可以不安装k8s,只需要安装docker,keadm就可以加入节点。云端的配置见https://blog.csdn.net/qq_38733943/article/details/129529813?spm=1001.2014.3001.5502

安装docker

参考下面这个网站安装docker,docker版本不会影响配置,所以使用最新的即可。
https://yeasy.gitbook.io/docker_practice/install/ubuntu

安装 keadm

去kubeedge官网找到对应版本的keadm压缩包,注意树莓派对应的是arm版本。这里我使用了云端同样的版本v1.10.1。用ftp将文件传到树莓派中的/root下面后:

  1. 在root目录下解压keadm安装包
tar -zxvf keadm-v1.10.1- linux-arm.tar.gz
  1. 配置环境变量
cd keadm-v1.10.1- linux-arm
cd keadm
cp keadm /usr/local/bin
  1. 查看是否安装成功
keadm version

加入集群

在加入集群之前要记得开放服务器的端口10000。如果使用的是阿里云、华为云这种云服务,实例管理里可以通过安全组进行设置。由于安装过程一般比较慢,这里还是将需要下载的安装包提前放到安装目录中。
准备工作:

  • kubeedge压缩包
  • edgecore.service 这个在source的build/tools 里面
  • checksum_kubeedge
  1. 创建安装文件夹
cd /etc
mkdir kubeedge
  1. 在这个文件夹中放入上面准备的三个文件
    在这里插入图片描述

  2. 加入集群
    –cloudcore-ipport 这里输入云服务器的公网ip
    –kubeedge-version 这里输入安装的kubeedge版本,建议和云服务器一样
    –token 这里输入master的节点的token 在云端输入keadm gettoken可以拿到

keadm join --cloudcore-ipport=47.115.223.xxx:10000 --edgenode-name=shumeipai  --kubeedge-version=1.10.1 --token=xxx        

直接执行此命令会下载相应版本的kubeedge-1.10.1的安装包,此过程较慢,为了安装的顺利进行,可以将之前下载的安装包复制到安装目录,进入安装文件夹

  1. 验证是否安装成功
    在云端服务器上输入:(边端没有安装k8s)
kubectl get nodes

可以看到
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GyGGm04o-1679866055450)(:/4aecc8836c00468ea839248be1488407)]

可能出现的问题

proxy运行在边端

观察运行的pods

kubectl get pods -A -owide

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k0or1JcT-1679866055450)(:/2046cb7129094dfd890f5747644edf8d)]

可以发现proxy运行在边端,这是我们不希望看到的。
因为有些应用在边端上无法正常运行。执行下面的指令

kubectl get daemonset -n kube-system | grep -v NAME | awk '{print $1}' | xargs -n 1 kubectl patch daemonset -n kube-system  --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/affinity", "value":{"nodeAffinity":{"requiredDuringSchedulingIgnoredDuringExecution":{"nodeSelectorTerms":[{"matchExpressions":[{"key":"node-role.kubernetes.io/edge","operator":"DoesNotExist"}]}]}}}}]'

在这里插入图片描述

coredns 拉取失败

查看pods
在这里插入图片描述

发现coredns 有imagepullbackoff的问题。这应该是docker没有把这玩意的镜像拉下来。

查看pod的详情发现需要的镜像是下面箭头标记的这个,这里hangzhou.aliyun是我们前面初始化k8s时配置的源,所以说明这个源没有这个coredns。

kubectl describe pod coredns -n kube-system # 查看这个pod的详情

在这里插入图片描述

思路:直接通过docker去下一个coredns,然后改名成这个pod需要的名字,就ok了。

步骤:
直接使用docker pull下来再用tag改名。

docker pull coredns/coredns:1.8.0
docker tag coredns/coredns:1.8.0 registry.cn-hangzhou.aliyuncs.com/google_containers/coredns/coredns:v1.8.0
# 改名要和前面需求的镜像文件名字一模一样

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8JRCLfB7-1679866055451)(:/b7b801e0a4bc456dabf837a02cc2dffe)]

看一下镜像仓库发现镜像已经成功下载改名了。
再次查看pods,所以的pods都running了。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mzd5ohxz-1679866055451)(:/34f4d84f19e64506b7971663a42e2785)]

edgecore运行报错,云端没有显示边端节点

查看edgecore日志显示
failed to check the running environment: kube-proxy should not running on edge node when running edgecore
然而按上面的方法把kube-proxy等服务部署在云端仍然没有作用。可以尝试下面的方法:

  1. 在树莓派上执行
vim /etc/docker/daemon.json
  1. 在文件中添加
"exec-opts": ["native.cgroupdriver=cgroupfs"]
  1. 修改完毕后重启docker
systemctl daemon-reload
systemctl restart docker
systemctl restart edgecore.service
systemctl status edgecore.service

查看edgecore运行正常,再去查看云端服务器,可以看到边缘节点已经ready。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-13PYBdsN-1679866055451)(:/021c9e23aef94082b0273c93ee4c82ef)]

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值