讲师中心 微信公众号

工具推荐

视频效率加速
Laper
Laper

剧本策划到成片协作

Seko
Seko

AI短剧一键生成成片

updream

一键生成高质量推广成片

剧云
剧云

中文短剧剧本制作平台

Linux CRI-O 的轻量级设计与 Kubernetes 集成性能对比

风静酱_8682

风静酱_8682

发布时间:2026-02-18 08:57:31

|

310人浏览过

|

来源于php中文网

原创

CRI-O 启动 Pod 略慢于 containerd,主因是在 sandbox 创建阶段强制校验 OCI 配置(如 seccomp/capabilities),而 containerd 推迟至容器启动时;生产中该差异可忽略,调度、镜像拉取、CNI 才是瓶颈。

linux cri-o 的轻量级设计与 kubernetes 集成性能对比

为什么 CRI-O 启动 Pod 比 containerd 慢一点?

CRI-O 不是“更快”的 runtime,它的设计目标不是压测吞吐,而是最小化攻击面和 Kubernetes 原生语义对齐。启动延迟略高,主要来自它在 pod-sandbox 创建阶段做了更严格的 OCI 运行时校验(比如强制检查 config.json 中的 linux.seccomp 和 capabilities 字段合法性),而 containerd 会把部分校验推迟到容器实际 start 时。

  • 如果你用 crictl runp 测试单个 sandbox,CRI-O 平均多耗 30–80ms,尤其在启用 seccomp 或 apparmor 策略时更明显
  • 生产中这个差异几乎不可感——Kubernetes 调度、镜像拉取、CNI 配置才是瓶颈,别为这几十毫秒换 runtime
  • 想压测真实性能?必须用 kubectl create -f 批量起 50+ Pod,并关闭 imagePullPolicy: Always,否则网络和 registry 成为主因

CRI-O 的 pause 镜像到底要不要手动配置?

要,而且必须匹配 kubelet 的 --pod-infra-container-image。CRI-O 不像 containerd 那样能自动 fallback 到内置默认值;它完全依赖配置项 pause_image(位于 /etc/crio/crio.conf 的 [crio.image] 小节)。

Kubernetes 301363
Kubernetes 301363

从抖音视频学习: Kubernetes — 【2026最新】这绝对是B站讲的最好的Kubernetes系统精讲教程,全程干货无废话!

下载
  • 常见错误:升级 Kubernetes 后没同步更新 pause_image,导致 Pod 卡在 ContainerCreating,crictl pods 显示状态为 NotReady,crictl logs 查不到日志——因为 infra 容器根本没起来
  • 正确做法:从对应 k8s 版本的 kubernetes/release images 找匹配的 pause 镜像,例如 v1.28 → k8s.gcr.io/pause:3.6
  • 注意镜像仓库镜像:如果用国内环境,得把 pause_image 改成 registry.aliyuncs.com/google_containers/pause:3.6,且确保该镜像已 podman pull 过,CRI-O 不会自动拉取 infra 镜像

为什么 crictl exec 进不去容器却没报错?

因为 CRI-O 默认禁用 exec 的 TTY 分配和 stdin 绑定,除非容器 manifest 显式声明了 stdin: true 和 tty: true。这不是 bug,是它对 OCI spec 的严格实现——containerd 会悄悄补全这些字段,CRI-O 不会。

  • 现象:crictl exec -it <cid> sh</cid> 返回空提示、光标卡住,但 exit code 是 0
  • 验证方法:crictl inspect <cid></cid> 查 spec.process.stdin 和 spec.process.terminal 字段,若为 false 就必然失败
  • 修复方式:改 Deployment 的 stdin: true 和 tty: true(在 containers[] 下),或临时用 crictl exec -i -t 强制开启(仅当 runtime 允许时才生效,CRI-O 1.26+ 支持)

CRI-O 的 cgroup v2 支持有哪些硬限制?

它只支持 unified cgroup hierarchy(即纯 v2),不支持 hybrid 模式。一旦系统启用了 cgroup v2,CRI-O 就要求所有组件(kubelet、runc、内核)都走 v2 路径,否则直接拒绝启动。

  • 典型报错:failed to create container: cgroups: cgroup mountpoint does not exist: /sys/fs/cgroup —— 实际是 /sys/fs/cgroup 下没有 cgroup.controllers 文件,说明内核没真正启用 v2
  • 检查命令:stat -fc %T /sys/fs/cgroup 输出必须是 cgroup2fs;cat /proc/1/cgroup 第一行应为 0::/
  • 坑点:某些发行版(如 RHEL 8.8+)默认启用 hybrid,需在 grub 中加 systemd.unified_cgroup_hierarchy=1 并重装 initramfs,否则 CRI-O 服务起不来
事情说清了就结束。CRI-O 的“轻量”不在二进制大小,而在它不做多余的事——不兼容旧字段、不自动补配置、不兜底失败路径。用它就得接受这种克制。

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2355

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

3862

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

1276

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

4479

2025.09.10

Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

116

2025.12.22

Go云原生应用与Kubernetes服务部署实战
Go云原生应用与Kubernetes服务部署实战

本专题围绕 Go 语言在云原生环境中的应用展开,讲解容器化部署、Kubernetes 编排、服务发现、健康检查与弹性扩缩容机制。通过真实云端案例,帮助开发者构建可扩展的云原生微服务架构。

228

2026.06.29

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

4570

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

3813

2023.06.29

Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

40

2026.11.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn