Open koktlzz opened 3 years ago
1、检查你的当前节点(worker节点上)有没有kubelet可执行程序?按照作者的文章,你要检查/opt/k8s/bin/目录下有没有kubelet 2、检查是否给kubelet-bootstrap用户或者system:bootstrappers组绑定了集群角色; 3、检查是否给apiserver的用户绑定了角色; 步骤2和3你严格按照作者的例子做就是了,当然有些参数是你可以自行修改的。 我自己因为步骤一,忘记拷贝kubelet了导致怎么也查不出问题,其实如果我不用system来启动,估计立刻就能看出问题了。
文档版本
现象描述
06-4 前的步骤均已完成,且按照作者的方法检查没有问题。然而 kubelet 在启动后发送退出并重启,报错信息如下:
failed to create kubelet: unknown service runtime.v1alpha2.RuntimeService
另外,查看节点的 CSR 情况时发现,system:bootstrappers 组的请求并没有被处理,只有 system:nodes 的请求:
尝试的解决方案
按照作者的步骤安装 Containerd 和 crictl 时,使用 crictl 命令也会报类似的错:
FATA[0000] listing images failed: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.ImageService
在网上找到了相关的解决方案,如 修改配置文件中的 snapshotter,以及 重置配置文件,确实解决了 crictl 的报错。然而 kubelet 却依然因该错误退出重启。另外在启动前也的确创建了相应的rolebinding:
另外查看Containerd的日志,发现缺少cni配置。不过我认为是正常的,毕竟确实还没有安装cni插件:
level=error msg="Failed to load cni configuration" error="cni co...i config"