安装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
成功输出信息如下: