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

本地虚拟机安装Kubernetes执行kubeadm init时遇CRI错误

Kubernetes kubeadm init 报错:CRI v1 runtime API 未实现

问题

执行kubeadm初始化主节点命令时触发预检查失败:

sudo kubeadm init --apiserver-advertise-address 192.xxx.xxx.11 --control-plane-endpoint 192.xxx.xxx.11 --v=5

核心错误:

[ERROR CRI]: container runtime is not running: output: time="2023-08-17T15:09:08Z" level=fatal msg="validate service connection: CRI v1 runtime API is not implemented for endpoint \"unix:///var/run/containerd/containerd.sock\": rpc error: code = Unimplemented desc = unknown service runtime.v1.RuntimeService"

环境信息

  • Docker版本:Docker version 24.0.5, build ced0996
  • kubeadm版本:kubeadm version: &version.Info{Major:"1", Minor:"27", GitVersion:"v1.27.4", GitCommit:"fa3d7990104d7c1f16943a67f11b154b71f6a132", GitTreeState:"clean", BuildDate:"2023-07-19T12:19:40Z", GoVersion:"go1.20.6", Compiler:"gc", Platform:"linux/amd64"}

解决方案

该错误是因为Docker内置的containerd未启用CRI v1 API,或kubelet与containerd配置不匹配,按以下步骤修复:

  1. 配置containerd的CRI支持
    生成默认配置文件:

    containerd config default > /etc/containerd/config.toml
    

    编辑/etc/containerd/config.toml文件,完成以下配置:

    • 找到[plugins."io.containerd.grpc.v1.cri"]段,确保启用CRI相关配置
    • 在[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]下添加:
      SystemdCgroup = true
      
    • 确认sandbox_image设置为对应K8s版本的pause镜像,K8s 1.27版本对应:
      sandbox_image = "registry.k8s.io/pause:3.9"
      
  2. 重启相关服务

    systemctl restart containerd
    systemctl restart kubelet
    
  3. 验证CRI连接状态
    执行命令确认CRI服务正常:

    crictl info
    

    返回正常JSON信息则说明配置生效。

  4. 重新执行初始化命令
    再次运行kubeadm init命令即可:

    sudo kubeadm init --apiserver-advertise-address 192.xxx.xxx.11 --control-plane-endpoint 192.xxx.xxx.11 --v=5
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 05:09:53