写点什么

CRI-O:面向 Kubernetes 的开源容器运行时

作者:K Jonas

  • 2019-06-04
  • 本文字数:1239 字

    阅读完需:约 4 分钟

CRI-O:面向 Kubernetes 的开源容器运行时

4 月 8 日,云原生计算基金会(CNCF)的技术监督委员会(Technical Oversight Committee,TOC)投票接受CRI-O 作为孵化级别的托管项目。CRI-O由 Red Hat 创建,是面向 Kubernetes 的开放容器计划(Open Container Initiative,OCI)的容器运行时,提供了DockerrktMoby的替代方案。


CRI-O 是专门针对在 Kubernetes 中运行所设计的,它会交付一个最小化的运行时,该运行时实现了 Kubernetes容器运行时接口(Container Runtime Interface,CRI)的标准组件。早期版本的 Kubernetes 只支持 Docker 运行时的容器。当 Kubernetes 团队决定支持新的运行时(比如 rkt)的时候,他们决定开发并发布 CRI,以便于将 Kubernetes 与特定的容器运行时解耦。


CRI 是一个插件接口,由 protocol buffers 和 gRPC API 组成,它允许 Kubernetes 通过kubelet与任意满足 CRI 接口的容器运行时进行交互。CRI 主要的两个 RPC 是 Image Service 和 Runtime Service,它们分别规定了如何拉取镜像以及管理容器的生命周期。


CRI-O 能够让 Kubernetes 使用任意兼容 OCI 的运行时作为运行 pod 的容器运行时。因为只关注在 Kubernetes 中运行容器,所以项目的范围仅限于:


  • 支持多种镜像格式,包括现有的 Docker 镜像格式;

  • 支持多种方式下载镜像,包括信任和镜像验证;

  • 容器镜像管理(管理镜像层、覆盖文件系统等);

  • 容器进程的生命周期管理;

  • 满足 CRI 所需的监控和日志记录;

  • CRI 所需的资源隔离。


CRI-O 运行时利用了开放容器计划(Open Container Initiative),该计划提供了容器配置、文件系统以及执行环境的规范,另外还有镜像配置、文件系统、索引和清单(manifest)的规范。为了管理容器镜像和存储,CRI-O 使用了开源Containers项目containers/imagecontainers/storage,其中包括多个容器工具。这两个容器库用于从镜像注册表中拉取镜像,并将镜像内容存储在容器文件系统中。


CRI-O 网络是通过容器网络接口(Container Networking Interface)实现的,该接口是CNCF的另外一个项目,它提供了在 Linux 容器中配置网络接口的规范和库。容器会被一个内部工具cronmon所监控,它会收集容器日志并记录退出时的编码。



按照CRI-O项目的说法,CRI-O 的主要好处是 Kubernetes 生态系统的稳定性,并承诺通过 Kubernetes 的测试。 CRI-O 为每个 Kubernetes 发布版本均开发了分支,并与 Kubernetes 的版本发布和废弃周期保持一致。CRI-O 代码库包含针对 Kubernetes 的端到端测试,该测试在每次 pull request 时都会运行,并且必须通过才能接受 PR。


CRI-O 在 2016 年开始开发,在 Kubernetes 项目引入 CRI 之后,在 2017 年发布了 CRI-O 1.0。目前,CRI-O 支持将runcKata容器作为容器运行时,任何兼容 OCI 的运行时都是可接入的。CRI-O 支持 OCI 容器映像,可以从任何容器注册表中拉取。它的核心贡献者包括 RedHat、Intel、SUSE、Hyper 和 IBM。


关于如何开始使用 CRI-O 和如何进行贡献的更多信息可以参考Github上的CRI-O项目


查看英文原文CRI-O: An Open Source Container Runtime for Kubernetes


2019-06-04 08:0010658

评论

发布
暂无评论
发现更多内容

【编程史漫谈】goto时代和结构化编程

丛风

编程简史

Cinema 4D 2024(C4D 2024)中文完整版永久使用-mac/win

Rose

Media Encoder 2024(Me2024)中文完整版永久使用-mac/win

Rose

为何选择MyEMS?揭秘开源能源管理系统的十大核心竞争力

开源能源管理系统

开源 开源能源管理系统

超越条形图:项目经理结合现代进度工具的高效管理五大法则

Tecjt_锦图科技

项目进度管理工具

从 Java 到 Go:面向对象的巨人与云原生的轻骑兵

京东科技开发者

华为全联接大会2025最新剧透!OpenTiny邀请你一起来开发者展岛~

OpenTiny社区

开源 前端 智能化 OpenTiny MCP

HarmonyOS 5.0应用开发——V2装饰器@local的使用

高心星

鸿蒙 HarmonyOS5.0 V2装饰器 @local

AIGEO助力企业破局

跑一跑

geoai

【前沿技术探索与应用赛道】借助京东AI言犀提升Kubernetes集群巡检的效率和准确性

京东科技开发者

“一人即团队”——一句话驱动智能体团队

Comate编码助手

AI 编程 多智能体协作 文心快码

TencentOS Server V4首批通过安全可靠测评( 6.6 内核)

极客天地

应用多、交付快,研发运维怎么管?看云效+SAE 如何一站式破局

阿里巴巴云原生

阿里云 Serverless 云原生

无人机巡航系统分析

深圳亥时科技

无人机 巡检 #开源

AI教育白皮书解读 | 高校如何破局理科教育转型,搭上“人工智能+”行动快车

ModelWhale

AI教育 人工智能+ 理科

选择MyEMS的十大核心优势:为您的企业开启智慧能管新纪元

开源能源管理系统

开源 开源能源管理系统

HiMarket 正式开源,为企业落地开箱即用的 AI 开放平台

阿里巴巴云原生

阿里云 AI 云原生 Himarket

积极践行“人工智能+”行动,山东大学数字人文教科研一体平台完成 AI 化升级

ModelWhale

山东大学 AI教育 人工智能+

快递批量查询,即开即用帮您搞定物流寄管查

快递鸟

如何秒级实现接口间“幂等”补偿:一款轻量级仿幂等数据校正处理辅助工具

京东科技开发者

Qoder 全新「上下文压缩」功能正式上线,省 Credits !

阿里巴巴云原生

阿里云 AI 云原生

应用多活综述与实践

陈一之

应用架构 应用多活

黑客必备的DevOps实战工作坊:4小时动手实验指南

qife122

DevOps 渗透测试

MyEMS:开源的力量,如何为企业能源管理带来颠覆性变革?

开源能源管理系统

开源 开源能源管理系统

NineData社区版 V4.5.0 正式发布!

NineData

数据库管理工具 NineData 数据库DevOps 数据复制工具 NineData 社区版 V4.5.0

功能强大且操作简便的逆向编译工具 Binary Ninja for Mac

Rose

LJSON:GB/s级全能JSON和数值双引擎的架构哲学与性能平衡之道

lengjingzju

开源 架构 算法 性能优化 JSON库

【FAQ】应用A如何使用应用B内的文件?

HarmonyOS SDK

HarmonyOS NEXT HarmonyOS SDK应用服务

臭氧母带混音处理套装 iZotope Ozone 12 Advanced

Rose

CRI-O:面向 Kubernetes 的开源容器运行时_软件工程_InfoQ精选文章