k8s初始化时候,报错无法通过 CRI(容器运行时接口)与 containerd 通信

发布于:2025-05-14 ⋅ 阅读:(19) ⋅ 点赞:(0)

报错主要信息处
[reset] Unmounting mounted directories in “/var/lib/kubelet”
W0513 11:34:19.818023 27124 cleanupnode.go:134] [reset] Failed to evaluate the “/var/lib/kubelet” directory. Skipping its unmount and cleanup: lstat /var/lib/kubelet: no such file or directory
W0513 11:34:19.837582 27124 cleanupnode.go:99] [reset] Failed to remove containers: output: time=“2025-05-13T11:34:19+08:00” level=fatal msg=“validate service connection: validate CRI v1 runtime API for endpoint “unix:///run/containerd/containerd.sock”: rpc error: code = Unimplemented desc = unknown service runtime.v1.RuntimeService”
, error: exit status 1
[reset] Deleting contents of directories: [/etc/kubernetes/manifests /etc/kubernetes/pki]
[reset] Deleting files: [/etc/kubernetes/admin.conf /etc/kubernetes/kubelet.conf /etc/kubernetes/bootstrap-kubelet.conf /etc/kubernetes/controller-manager.conf /etc/kubernetes/scheduler.conf]

The reset process does not clean CNI configuration. To do so, you must remove /etc/cni/net.d

The reset process does not reset or clean up iptables rules or IPVS tables.
If you wish to reset iptables, you must do so manually by using the “iptables” command.

If your cluster was setup to utilize IPVS, run ipvsadm --clear (or similar)
to reset your system’s IPVS tables.

The reset process does not clean your kubeconfig files and you must remove them manually.
Please, check the contents of the $HOME/.kube/config file.
11:34:19 CST message: [node1]
init kubernetes cluster failed: Failed to exec command: sudo -E /bin/bash -c “/usr/local/bin/kubeadm init --config=/etc/kubernetes/kubeadm-config.yaml --ignore-preflight-errors=FileExisting-crictl,ImagePull”
W0513 11:34:19.641213 27083 utils.go:69] The recommended value for “clusterDNS” in “KubeletConfiguration” is: [10.233.0.10]; the provided value is: [169.254.25.10]
[init] Using Kubernetes version: v1.26.0
[preflight] Running pre-flight checks
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR CRI]: container runtime is not running: output: time=“2025-05-13T11:34:19+08:00” level=fatal msg=“validate service connection: validate CRI v1 runtime API for endpoint “unix:///run/containerd/containerd.sock”: rpc error: code = Unimplemented desc = unknown service runtime.v1.RuntimeService”
, error: exit status 1
[preflight] If you know what you are doing, you can make a check non-fatal with --ignore-preflight-errors=…
To see the stack trace of this error execute with --v=5 or higher: Process exited with status 1
11:34:19 CST retry: [node1]

主要错误处:
[ERROR CRI]: container runtime is not running:
rpc error: code = Unimplemented desc = unknown service runtime.v1.RuntimeService

这说明 kubeadm 无法通过 CRI(容器运行时接口)与 containerd 通信,因为缺少了正确的服务实现,通常这是由于 containerd 的配置不兼容或者 containerd 安装得不完整。

首先确定containerd 配置正确启用了 CRI 插件,sudo cat /etc/containerd/config.toml | grep -A 5 “[plugins.“io.containerd.grpc.v1.cri”]”
在这里插入图片描述
查看不到没有

重新生成
sudo mv /etc/containerd/config.toml /etc/containerd/config.toml.bak
sudo containerd config default | sudo tee /etc/containerd/config.toml
在这里插入图片描述
重启
sudo systemctl restart containerd

查看验证
sudo ctr plugins ls | grep cri
在这里插入图片描述
在这里插入图片描述
再次初始化集群就可以了


网站公告

今日签到

点亮在社区的每一天
去签到