首页
/ CRI-O v1.33.0 容器运行时新特性解析

CRI-O v1.33.0 容器运行时新特性解析

2025-06-10 08:09:19作者:何将鹤

项目简介

CRI-O 是一个专为 Kubernetes 设计的轻量级容器运行时,它实现了 Kubernetes 容器运行时接口(CRI)。作为 containerd 和 Docker 的替代方案,CRI-O 专注于提供符合 Kubernetes CRI 标准的最小化运行时环境,特别适合那些需要精简、高效容器运行时的 Kubernetes 集群。

核心特性更新

OCI 制品支持

v1.33.0 版本引入了对 OCI 制品的全面支持,这是一个重要的架构演进。现在 CRI-O 能够:

  1. 默认将制品存储在 /var/lib/containers/storage/artifacts 目录下,并作为固定镜像(pinned images)管理
  2. 通过 crictl pull 命令拉取制品
  3. 使用 crictl images 查看制品列表
  4. 支持 crictl inspecti 检查制品详情
  5. 可通过 crictl rmi 删除制品

这一特性为 Kubernetes 生态系统带来了更丰富的制品管理能力,使得除了容器镜像外,其他类型的 OCI 兼容制品也能被有效管理。

多架构制品支持

新版本增加了对多架构制品的支持,这使得 CRI-O 能够更好地处理包含多种平台架构(如 amd64、arm64 等)的制品集合。这对于混合架构集群环境尤为重要,简化了跨平台制品的分发和管理。

容器停止信号定制

实现了 KEP-4960 建议中的容器停止信号功能,允许用户自定义容器停止时发送的信号。这一特性增强了容器生命周期管理的灵活性,使得应用可以更优雅地处理停止请求。

安全增强

特权容器的 seccomp 配置

新增 privileged_seccomp_profile 配置选项,允许为特权容器指定 seccomp 配置文件。这一改进填补了特权容器安全配置的空白,使得即使是以特权模式运行的容器也能应用适当的安全限制。

默认掩码路径调整

非特权容器的默认掩码路径进行了优化调整,现在包括:

  • /proc/acpi
  • /proc/asound
  • /proc/interrupts
  • /proc/kcore
  • /proc/keys
  • /proc/latency_stats
  • /proc/sched_debug
  • /proc/scsi
  • /proc/timer_list
  • /proc/timer_stats
  • /sys/devices/system/cpu/cpu/thermal_throttle
  • /sys/devices/virtual/powercap
  • /sys/firmware
  • /sys/fs/selinux

这些调整进一步限制了容器对主机敏感信息的访问,增强了默认安全配置。

网络改进

nftables 替代 iptables

v1.33.0 将主机端口实现从 iptables 迁移到了 nftables,这是网络栈的重要升级:

  1. 现在依赖 nft 二进制而非 iptables 工具链
  2. 不再需要 iptables 二进制文件
  3. 利用了更现代的 nftables 框架,为未来网络功能扩展奠定基础

这一变化使得 CRI-O 能够更好地适应现代 Linux 内核的网络子系统。

性能与稳定性

日志处理优化

修复了日志轮转在 Pod 终止时可能失败的问题,增强了日志系统的可靠性。同时优化了日志格式,特别是与 klog 相关的日志输出,使得日志更易读且信息更丰富。

内存指标新增

新增了 container_spec_memory_limit_bytes 指标,用于展示容器的内存限制(以字节为单位)。这一指标为集群监控和资源管理提供了更精确的数据支持。

实验性功能

FreeBSD 支持

v1.33.0 引入了对 FreeBSD 的实验性支持,扩展了 CRI-O 的跨平台能力。虽然目前处于早期阶段,但为未来在 BSD 系统上的部署奠定了基础。

配置变更

拉取进度超时调整

pull-progress-timeout 的默认值增加到 30 秒,同时允许通过设置为 0 来禁用此功能。这一调整平衡了镜像拉取体验和网络环境差异带来的影响。

systemd 服务文件简化

移除了参考 crio.service 中对 LimitNOFILE 的显式配置。需要注意的是,在 systemd 版本低于 240 的系统上,管理员应手动配置 LimitNOFILE=1024:524288 以避免回退到内核默认值 4096。

总结

CRI-O v1.33.0 带来了多项重要更新,特别是在 OCI 制品支持、安全增强和网络现代化方面。这些改进使得 CRI-O 在作为 Kubernetes 容器运行时时的功能更加全面,安全性更高,同时也为未来的扩展奠定了基础。对于追求轻量级、高效且安全的 Kubernetes 运行时环境的用户来说,这个版本值得关注和升级。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
193
2.16 K
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
9
1
金融AI编程实战金融AI编程实战
为非计算机科班出身 (例如财经类高校金融学院) 同学量身定制,新手友好,让学生以亲身实践开源开发的方式,学会使用计算机自动化自己的科研/创新工作。案例以量化投资为主线,涉及 Bash、Python、SQL、BI、AI 等全技术栈,培养面向未来的数智化人才 (如数据工程师、数据分析师、数据科学家、数据决策者、量化投资人)。
Python
78
72
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
972
573
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
548
77
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
349
1.36 K
giteagitea
喝着茶写代码!最易用的自托管一站式代码托管平台,包含Git托管,代码审查,团队协作,软件包和CI/CD。
Go
17
0
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
206
284
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
60
17