KubeEdge要点笔记

2023-02-21
2分钟阅读时长

安装流程

首先要在云端安装k8s,理论上只需要master节点,可以没有worker,换句话说可以是一个单节点集群(但是要关闭NoSchedule的taint)。

k8s迭代的非常快,kubeEdge适配的版本会落后3~4个大版本,因此k8s的版本不能太新。这里使用的是k8s v1.22.16,对应的是kubeEdge的v1.12.2. 事实上我先尝试了v1.23+1.13的组合,但是kubeEdge的代码质量确实不太行,1.13甚至无法正常卸载…

另外,注意并不能用k3s代替k8s来充当master,至少用keadm来安装是不行的。

这里使用helm来安装,因为用二进制安装很麻烦,keadm不像kubeadm那样支持直接使用配置文件初始化,而且keadm安装时需要翻墙,这是一个golang写的二进制文件,而不是bash脚本,没法直接改,在云上翻墙十分麻烦,我放弃了。

云端

这里将整个cloudcore文件夹clone下来(或者用这个工具打包),上传到服务器。然后编辑values.yaml,修改镜像版本(我这里用的是v1.12.2),并填入服务器地址(advertiseAddress那里),最后跑一下:

helm upgrade --install cloudcore ./cloudcore --namespace kubeedge --create-namespace -f ./cloudcore/values.yaml

当然是在文件夹外面一层跑。

等到pod成为running状态,用ss -nalp|grep 1000可以看到10001-10004,就说明部署成功了。此时运行keadm gettoken获取云端join token备用。

如果上面出现问题, 可以先卸载:

helm uninstall cloudcore -n kubeedge
kubectl delete ns kubeedge

重新配置之后再安装即可。

边缘端

边缘端只能使用docker来安装,因此先安装好docker并配置:

// /etc/docker/daemon.json
{
    "registry-mirrors": [
        "https://dockerproxy.com",
		"https://mirror.baidubce.com"
    ]
}

然后下载keadm的二进制文件并上传到机器,注意应该和上面helm安装的服务端版本一致。

然后运行:

keadm join --cloudcore-ipport=192.168.3.202:10000 --token=cc8a5df855bb7b6a2e407f0dd9f81fa3152b4e3a25b7360871c79b4938972464.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2Nzc0NjM1NjR9.UqJNchqPc-9SKhhQaXzcMx0HnMZ4ZL6F81RjNV-9B_A

在云端查看nodes,可以看到edge.

如果云端使用containerd,边缘端最好改成一致的,在运行keadm join时,可以指定-r containerd

在边缘端运行journalctl -u edgecore,以及systemctl status edgecore,一切正常即说明安装完毕。

Avatar

个人介绍

兴趣使然的程序员,博而不精,乐学不倦
上一页 Kotlin要点笔记
下一页 K8s要点简记