赞
踩
天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
22.04.3
1.28.2
1.6.25
执行初始化命令kubeadm init命令时报错,内容如下
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR CRI]: container runtime is not running: output: time="2023-12-07T06:26:18Z" 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"
, error: exit status 1
参考第四
部分的第4
小节
systemctl status containerd
如果containerd正常运行(Active状态为active(running))
如下
查看containerd的config.toml文件
cat /etc/containerd/config.toml
如果有内容如下
disabled_plugins = ["cri"]
则修改文件
sudo vim /etc/containerd/config.toml
按i
进入编辑模式,注释掉
#disabled_plugins = ["cri"]
或者将"cri"删掉,如下
disabled_plugins = []
按esc
退出编辑然后按shift+zz
保存退出
修改的内容重启后生效
systemctl restart containerd
根据k8s官网的介绍,kubernets 自v 1.24.0 后,移除了 docker.shim(k8s集成的docker),替换采用 containerd 作为容器运行时。因此需要安装 containerd
而containerd是docker的子项目,现在他俩分开了,所以可以单独安装containerd
常用的容器运行时有docker、containerd、CRI-O等
containerd是一个CRI(Container Runtime Interface)组件,在容器运行时调用containerd组件来创建、运行、销毁容器等
CRI组件遵循OCI规范,通过runc实现与操作系统内核的交互,然后实现创建和运行容器
docker使用containerd作为运行时,k8s使用containerd、CRI-O等
CRI Container Runtime Interface 容器运行时接口
container runtime is not running 容器运行时未启动
validate service connection 无效的服务连接
CRI v1 runtime API is not implemented for endpoint “unix:///var/run/containerd/containerd.sock” 容器运行时接口 v1 运行时 接口 没有实现节点文件sock,应该就是此文件未找到
使用安装包安装的containerd会默认禁用作为容器运行时的功能,即安装包安装containerd后默认禁用containerd作为容器运行时
这个时候使用k8s就会报错了,因为没有容器运行时可以用
开启方法就是将/etc/containerd/config.toml文件中的disabled_plugins的值的列表中不包含cri
修改后重启containerd才会生效
感谢阅读,祝君暴富!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。