k8s初始化报错 [ERROR CRI]: container runtime is not running: ......

news2025/2/26 11:37:56

一、环境参数

  • linux系统为centos7
  • kubernetes版本为v1.28.2
  • containerd版本为1.6.28

二、报错内容

执行初始化命令kubeadm init命令时报错,内容如下

error execution phase preflight: [preflight] Some fatal errors occurred:
	[ERROR CRI]: container runtime is not running: output: time="2024-02-28T16:26:42+08:00" 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

在这里插入图片描述

三、解决方法

1. 查看containerd状态

systemctl status containerd

如果containerd正常运行(Active状态为active(running))

2. config.toml文件查看

查看containerd的config.toml文件
在这里插入图片描述
如果有内容如下
则进行修改

# 注释或将"cri"删掉
disabled_plugins = ["cri"]

3.重启containerd

修改的内容重启后生效

systemctl restart containerd

四、原因分析及参考

  1. 一个关于版本的背景故事
    根据k8s官网的介绍,kubernets 自v 1.24.0 后,移除了 docker.shim(k8s集成的docker),替换采用 containerd 作为容器运行时。因此需要安装 containerd
    而containerd是docker的子项目,现在他俩分开了,所以可以单独安装containerd

  2. 关于containerd的介绍
    常用的容器运行时有docker、containerd、CRI-O等
    containerd是一个CRI(Container Runtime Interface)组件,在容器运行时调用containerd组件来创建、运行、销毁容器等
    CRI组件遵循OCI规范,通过runc实现与操作系统内核的交互,然后实现创建和运行容器
    docker使用containerd作为运行时,k8s使用containerd、CRI-O等

  3. 报错内容中的内容分析
    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,应该就是此文件未找到

  4. containerd安装的默认禁用(重点)
    使用安装包安装的containerd会默认禁用作为容器运行时的功能,即安装包安装containerd后默认禁用containerd作为容器运行时
    这个时候使用k8s就会报错了,因为没有容器运行时可以用
    开启方法就是将/etc/containerd/config.toml文件中的disabled_plugins的值的列表中不包含cri
    修改后重启containerd才会生效

五、kubernetes k8s拉取镜像失败

异常:由于国内网络原因,kubeadm init会卡住不动,一卡就是半个小时,然后报出这种问题

I0228 16:54:27.451719   12390 version.go:256] remote version is much newer: v1.29.2; falling back to: stable-1.28
failed to pull image "registry.k8s.io/kube-apiserver:v1.28.7": output: E0228 16:57:04.871630   12789 remote_image.go:171] "PullImage from image service failed" err="rpc error: code = Unknown desc = failed to pull and unpack image \"registry.k8s.io/kube-apiserver:v1.28.7\": failed to resolve reference \"registry.k8s.io/kube-apiserver:v1.28.7\": failed to do request: Head \"https://us-west2-docker.pkg.dev/v2/k8s-artifacts-prod/images/kube-apiserver/manifests/v1.28.7\": dial tcp 64.233.188.82:443: i/o timeout" image="registry.k8s.io/kube-apiserver:v1.28.7"
time="2024-02-28T16:57:04+08:00" level=fatal msg="pulling image: rpc error: code = Unknown desc = failed to pull and unpack image \"registry.k8s.io/kube-apiserver:v1.28.7\": failed to resolve reference \"registry.k8s.io/kube-apiserver:v1.28.7\": failed to do request: Head \"https://us-west2-docker.pkg.dev/v2/k8s-artifacts-prod/images/kube-apiserver/manifests/v1.28.7\": dial tcp 64.233.188.82:443: i/o timeout"
, error: exit status 1
To see the stack trace of this error execute with --v=5 or higher

原因显而易见,是因为要下载registry.k8s.io的docker镜像,但是国内连不上

解决方法

使用阿里云镜像
运行kubeadm init时加上阿里云镜像的参数--image-repository=registry.aliyuncs.com/google_containers

kubeadm init --image-repository=registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16 --kubernetes-version=v1.18.5

等待一段时间即可成功!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1477343.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Excel数据表定制分组排序

实例需求:某学校体育活动统计表如下图左侧表格所示,数据按照班级排列,现在需要根据如下规格对表格进行排序 “幼儿”班级排列在表格最后按照“次数”降序排列“幼儿”班级同样按“次数”降序排列 排序结果如下图中右侧表格所示。 示例代码…

什么是蓝牙资产标签?

在当今的物联网时代,蓝牙资产标签作为一种无线通信技术,被广泛应用于各种资产跟踪和管理场景。那么,究竟什么是蓝牙资产标签呢? 蓝牙资产标签,顾名思义,是一种基于蓝牙技术实现的资产追踪设备。它通过与手…

羊大师:羊奶的多元价值,从餐桌到保健,一奶多用

羊大师:羊奶的多元价值,从餐桌到保健,一奶多用 羊奶的多元价值体现在多个方面,从餐桌到保健,都有着独特的作用。 在餐桌上,羊奶可以作为各种美食的原料,如羊奶冰淇淋、羊奶饼干、羊奶布丁等&a…

Element ui plus 中 table scroll 自动触底

Element ui plus 中 table scroll 自动触底 场景:添加客户等级的时候,新增的客户等级 input 框 被 scroll 遮挡、重叠,需要保证 scroll 保持在 最底部接可以解决 遮挡、重叠。 el-table 在设置了 height 后,会选择将 table 表头固…

逆向案例三:动态xhr包中AES解密的一般步骤,以精灵数据为例

补充知识:进行AES解密需要知道四个关键字,即密钥key,向量iv,模式mode,填充方式pad 一般网页AES都是16位的,m3u8视频加密一般是AES-128格式 网页链接:https://www.jinglingshuju.com/articles 进行抓包结果返回的是密文: 一般思…

使用vue把一周的时间划分为可以选择多个阶段

提示&#xff1a;使用vue把一周的时间划分为可以选择多个阶段段&#xff08;亲测有效&#xff09; 一、直接复制以下代码 代码如下&#xff08;示例&#xff09;&#xff1a; <template><div class"byted-weektime" mousedown"dian" mousemove&qu…

Object类详解

Object类详解 equals方法 和 equals的对比 hashcode 方法toString方法finalize 方法 &#xff08;新版被弃用&#xff09; equals方法 和 equals的对比 是一个比较运算符&#xff1a;   1&#xff09; &#xff1a;既可以判断基本类型&#xff0c;又可以判断引用类型&#x…

web自动化笔记一:元素定位的八种方式

一、元素定位 优先使用id定位&#xff0c;超链接使用link和paryial_link 二、自动化测试流程&#xff08;先定位后操作&#xff09; 1、自动化测试方案->2、自动化脚本编写&#xff08;定位元素、操作元素、验证操作、记录测试结果&#xff09;->3、执行测试用例->4、…

MATLAB环境下基于人工蜂群优化算法的卷积神经网络CNN图像识别

地球上的所有生物包括人类都在不断演变、进化&#xff0c;在这样的过程中逐渐适应了外界的环境&#xff0c;找到了适合自己的生存方式。不同的生物有不同的生存机制&#xff0c;群体活动作为一种常见的生存机制广泛存在于自然界中&#xff0c;例如蚂蚁、鸟群、鱼群、峰群甚至人…

手机和windows的便签怎么共享账号使用

在忙碌的生活中&#xff0c;我经常需要在手机和电脑之间同步记事信息。可是&#xff0c;每次当我在手机上记下一些重要事项后&#xff0c;想要在电脑上查看或继续编辑时&#xff0c;总是遇到各种麻烦。因为手机和电脑上的便签软件各不相同&#xff0c;无法实现账号共享和内容同…

系统性学习vue-vue3

系统性学习vue-vue3 Vue3简介创建Vue3.0工程使用vue-cli创建使用vite创建工程 分析工程结构&#xff08;cli创建的&#xff09;main.jsApp.vue 安装开发者工具初识setupref函数处理基本类型处理对象类型 reactive函数回顾Vue2的响应式原理vue3响应式原理—Proxyreactive对比ref…

C++面试宝典第33题:数组组成最大数

题目 给定一组非负整数nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。 示例1: 输入:nums = [10, 2] 输出:"210" 示例2: 输入:nums = [3, 30, 34, 5, 9] 输出:"…

开发一款跨境电商APP的流程是什么

开发一款跨境电商系统的流程大致如下&#xff1a; 1.需求分析&#xff1a;这是开发任何软件系统的第一步。在这个阶段&#xff0c;你需要与客户进行深入沟通&#xff0c;了解他们的业务模式、目标用户、产品特点以及竞争对手等信息。通过这一步骤&#xff0c;你可以确定系统的…

报`Uncaught (in promise) TypeError: NetworkError when attempting to fetch resource.`错误解决办法

使用了promise,但是在使用的过程中报Uncaught (in promise)错误&#xff0c;第一次遇到这种错误&#xff0c;所以在此记录下&#xff0c;方便以后解决问题 Uncaught (in promise) TypeError: NetworkError when attempting to fetch resource.错误通常出现在使用fetch API发起…

pytorch 图像数据集管理

目录 1.数据集的管理说明 2.数据集Dataset类说明 3.图像分类常用的类 ImageFolder 1.数据集的管理说明 pytorch使用Dataset来管理训练和测试数据集&#xff0c;前文说过 torchvision.datasets.MNIST 这些 torchvision.datasets里面的数据集都是继承Dataset而来&#xff0c…

【QT+QGIS跨平台编译】之五十六:【QGIS_CORE跨平台编译】—【qgsmeshcalclexer.cpp生成】

文章目录 一、Flex二、生成来源三、构建过程一、Flex Flex (fast lexical analyser generator) 是 Lex 的另一个替代品。它经常和自由软件 Bison 语法分析器生成器 一起使用。Flex 最初由 Vern Paxson 于 1987 年用 C 语言写成。 “flex 是一个生成扫描器的工具,能够识别文本中…

【Python笔记-设计模式】状态模式

一、说明 状态模式是一种行为设计模式&#xff0c;用于解决对象在不同状态下具有不同行为 (一) 解决问题 在对象行为根据对象状态而改变时&#xff0c;规避使用大量的条件语句来判断对象的状态&#xff0c;提高系统可维护性 (二) 使用场景 当对象的行为取决于其状态&#…

vue 部署后修改配置文件(接口IP)

近期&#xff0c;有一个项目&#xff0c;运维在部署的时候&#xff0c;接口ip还没有确定&#xff0c;而且ip后面的路径一直有变动&#xff0c;导致我这里一天打包至少四五次才行&#xff0c;很麻烦&#xff0c;然后看了下有没有打包后修改配置文件修改接口ip的方法&#xff0c;…

kubectl使用及源码阅读

目录 概述实践样例yaml 中的必须字段 kubectl 代码原理kubectl 命令行设置pprof 抓取火焰图kubectl 中的 cobra 七大分组命令kubectl createcreateCmd中的builder模式createCmd中的visitor访问者模式外层VisitorFunc分析 结束 概述 k8s 版本 v1.24.16 kubectl的职责 1.主要的…

深入理解网络通信基本原理和tcp/ip协议

深入理解网络通信基本原理和tcp/ip协议 一、计算机网络体系1&#xff0c;计算机网络体系结构2&#xff0c;网络中数据传输2.1&#xff0c;浏览器中输入一个url的执行流程2.2&#xff0c;数据在网络中是的传输流程 3&#xff0c;三次握手和四次挥手3.1&#xff0c;三次握手3.1.1…