#阿里云 #飞天发布时刻 正在直播!中企出海的「技术引擎」来了! 了解详情
写点什么

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:0010414

评论

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

redis sentinel架构

王瑞强

阿里云原生开源大家族加入中科院软件所开源软件供应链点亮计 - 暑期 2021

阿里巴巴云原生

开源 容器 微服务 开发者 云原生

IO

ltc

IO流

存储技术入门,这些硬件应该首先有所了解

SunnyZhang的IT世界

服务器 存储 交换机 san

玩转直播系列之消息模块演进(3)

vivo互联网技术

Java 服务器 消息系统 直播技术

Kubernetes 普及系列:容器基础入门

CODING DevOps

Kubernetes

程序员写好技术文章的几点小技巧

阿里巴巴云原生

程序员 云原生 写作 写作技巧

华为HMS生态和1+8+N的交叉点,点透棋局的华为帐号

脑极体

5分钟速读之Rust权威指南(八)

wzx

rust

我粉了!阿里大牛从内部带出来的百亿级高并发系统,从基础到实战、面面俱到

Java 程序员 架构 面试

做一次黑客,入侵一次服务器

叫我阿柒啊

Docker 入侵 docker远程 redis注入

首届HarmonyOS开发者创新大赛颁奖典礼于深圳召开

科技汇

论:在996的天下,Java程序员该如何高效学习

Java架构师迁哥

仰望天空,脚踏实地 —— CODING OKR 全新上线

CODING DevOps

团队管理 OKR

☕【JVM 技术之旅】让你完全攻克内存溢出(OOM)这一难题(上)

码界西柚

JVM OOM 异常 Exception 5月日更

字节跳动Java岗一二三面全经过分享

北游学Java

Java 字节跳动 面试

推荐计划 | 推荐好友用 CODING,获高额返现奖励

CODING DevOps

团队管理 敏捷开发 研发工具 开发团队

参与 Apache 顶级开源项目的 N 种方式,Apache Dubbo Samples SIG 成立!

阿里巴巴云原生

开源 开发者 云原生 dubbo 中间件

百度 Serverless 架构揭秘与应用实践

百度开发者中心

百度 开源 Serverless 云原生

超级详细!全网独家首发的SpringCloud Alibaba 到底有多强?

Java 程序员 架构 面试

Spark知识点简单总结

五分钟学大数据

大数据 spark 5月日更

每个开发人员都应该知道的 10 个 GitHub 仓库

LeanCloud

GitHub web开发

ETL-KETTLE工具使用

this

Java 数据 数据同步 ETL

飞猪基于 Serverless 的云+端实践与思考

阿里巴巴云原生

Serverless 容器 运维 云原生 监控

简单了解 MySQL 中相关的锁

leonsh

MySQL 后端

双非渣硕也能上岸?痛述阿里Java岗7轮技术面经历,险幸上岸

Java 程序员 架构 面试

为什么5、6月会空缺出大量技术岗?跳槽注意事项+面试官关心什么

Java架构师迁哥

面向WEB开发人员的Docker(五):部署开发WordPress

devpoint

Docker Wordpress 部署 Docker-compose

Hive窗口函数与分析函数

大数据技术指南

hive 5月日更

高级软件工程师必备的五大技能

架构精进之路

5月日更

部署混合云环境的5大挑战

云计算

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