安装KubeEdge报错Error: edge node join failed: unable to determine image API version: rpc error: code = U

2023-05-16

安装KubeEdge报错,报错信息

Error: edge node join failed: unable to determine image API version:
rpc error: code = Unavailable desc = connection error: desc => “transport: Error while dialing dial unix
/run/containerd/containerd.sock: connect: no such file or directory”> execute keadm command failed: edge node join failed: unable to determine image API version: rpc error: code = Unavailable desc = connection error: desc = “transport: Error while dialing dial unix> /run/containerd/containerd.sock: connect: no such file or directory”

在这里插入图片描述
环境:Centos7
k8s版本:1.23.8

尝试解决方案:
参考网上资料:https://blog.csdn.net/qq_38416500/article/details/125377411

crictl config runtime-endpoint unix:///run/containerd/containerd.sock

crictl config image-endpoint unix:///run/containerd/containerd.sock

原因:未配置endpoints
这里需要安装crictl,下载地址:https://github.com/kubernetes-sigs/cri-tools/releases,下载好对应kubelet版本的crictl,然后上传到 /usr/local/bin
目录下解压即可使用,这里不再多说。

但是我发现并不管用,经过一通分析,仔细查看报错信息
发现这个是容器运行时的问题吧,新版本跟k8s保持一致默认使用containerd作为容器运行时,所以这里看你需求,要么检查一下containerd环境是否正常,要么在keadm join的参数里配置使用docker作为容器运行时。

于是来到kubeedge官网,发现这样一段话:
kubeEdge官方安装教程:https://docs.kubeedge.io/zh/docs/setup/keadm_zh/
在这里插入图片描述

这里明确指出:在v1.11.0之后,keadm init 集成了Helm Chart,这意味着 cloudcore 将以容器化的方式运行。
如果您仍需要使用进程的方式启动 cloudcore ,您可以使用keadm deprecated init 进行安装,或者使用v1.10.0之前的版本。

问题原因

1.13版本默认使用containerd,如果需要使用docker,runtimetype和remote runtime endpoint都要在keadm join时指定

解决办法

使用keadm join --help 看一下参数信息,
在这里插入图片描述

注意两个参数:

  • remote runtime endpoint : KubeEdge Edge Node RemoteRuntimeEndpoint string, If flag not set, it will use unix:///run/containerd/containerd.sock (default “unix:///run/containerd/containerd.sock”),仔细一看这不就是报错信息的那段话么,

  • runtimetype: Container runtime type (default “remote”) 这里默认使用的是远程remote,那么我们指定一个参数为docker运行镜像就好了

最终运行指令:

 keadm join --cloudcore-ipport=172.23.70.235:10000 --kubeedge-version=1.13.0 --runtimetype=docker  --token=3b00d576d63572e2190799efc3596f936601a15319ee594e5a27343d8ee96859.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2Nzg4MjQxMTJ9.-MUpO6z6De0G0Ad7n4JtI-UZu9eEj1Ik9_OGOCz3Hzw

添加一个参数信息:--runtimetype=docker

成功输出信息如下:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安装KubeEdge报错Error: edge node join failed: unable to determine image API version: rpc error: code = U 的相关文章

随机推荐