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

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

2025-06-10 04:43:58作者:何将鹤

项目简介

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 运行时环境的用户来说,这个版本值得关注和升级。

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

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
176
261
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
860
511
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
182
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
259
300
kernelkernel
deepin linux kernel
C
22
5
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
596
57
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
398
371
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
332
1.08 K