You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes节点无法加入集群:CRI运行时报错求助

错误含义解析及排查方案

错误核心含义

你遇到的[ERROR CRI]: container runtime is not running伴随的rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.RuntimeService错误,本质是Kubernetes组件(kubelet)与工作节点上的容器运行时之间的CRI(容器运行时接口)版本不兼容:

  • 当前kubelet(对应你新部署的主节点K8s版本)尝试调用CRI的runtime.v1alpha2版本接口与容器运行时通信
  • 但工作节点上的容器运行时(如Docker、containerd)要么未启用对应版本的CRI接口,要么仅支持其他版本的CRI规范,导致无法响应kubelet的调用,最终被判定为“容器运行时未运行”。

结合你的场景:工作节点此前可对接K8s 1.20版本集群,而新部署的主节点K8s版本大概率更高(比如1.24+),版本差异引发了CRI接口的兼容问题。

排查与修复步骤

  • 检查版本兼容性:确认主节点K8s版本与工作节点容器运行时的兼容关系。例如K8s 1.24及以上版本不再默认支持Docker的原生CRI接口,需安装cri-dockerd作为中间层提供兼容支持。
  • 验证容器运行时CRI配置:
    • 若使用containerd:检查/etc/containerd/config.toml中是否启用了CRI接口,且配置的CRI版本与kubelet要求匹配,修改后重启containerd服务:
      sudo systemctl restart containerd
      
    • 若使用Docker:确保已安装cri-dockerd,并配置kubelet指向正确的CRI端点(unix:///var/run/cri-dockerd.sock)
  • 确认kubelet配置:检查kubelet启动参数中的--container-runtime-endpoint是否指向当前容器运行时的CRI套接字路径,确保路径正确后重启kubelet:
    sudo systemctl restart kubelet
    
  • 忽略无关日志:你提到的/var/lib/kubelet/config.yaml缺失属于正常现象,该文件会在kubeadm join成功后自动生成,无需提前创建。

内容的提问来源于stack exchange,提问作者Dean Schulze

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 20:39:15