NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

评论

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

OCR产业应用实战,多类别电表读数识别方案详解

百度大脑

ICLR 2022|唯快不破!北航、NTU、百度飞桨提出面向极限压缩的全二值化BiBERT

百度大脑

性能测试中过滤异常的响应时间

FunTester

性能测试 HTTP 接口测试 响应时间 FunTester

编程和英语,数学到底什么关系

北极的大企鹅

思维转换 编程思想

编程术语的类比(二)

北极的大企鹅

学习 思维转换 编程思想

千万级学生管理系统的考试试卷存储方案

阿卷

架构实战营

CPU占用率爆满,服务器遭遇挖矿如何排查

山河已无恙

Linux 3月月更

不联网的情况下,使用 electron-builder 快速打包全平台应用

编程三昧

Electron 3月月更 electron-builder

VuePress 博客如何开启本地 HTTPS 访问

冴羽

JavaScript Vue 前端 vuepress 博客搭建

Curve 加入 PolarDB 开源数据库社区,强化分布式共享存储

网易数帆

数据库 postgresql 云原生 分布式存储 polarDB

注入语句详解(get注入,cookie注入,搜索型注入等)

喀拉峻

网络安全

Web 键盘输入法应用开发指南 (5) —— 实战技巧

天择

JavaScript 键盘 实战 输入法 3月月更

在数字化与绿色的双轮之间,华为为全球企业搭建一道“车轴”

脑极体

烂书!《气候经济与人类未来》

懒时小窝

烂书

深入分析沙箱逃逸漏洞

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞

推荐 10 本 Go 经典书籍,从入门到进阶(含下载方式)

AlwaysBeta

Go golang 编程语言 书单推荐 Go 语言

java培训:多个线程同时访问一个类是否有问题方法

@零度

JAVA开发

FinClip首届黑客马拉松 "快码加编”招募中,邀你挥洒创意赢万元现金大奖

FinClip

小程序 移动开发 APP开发 小程序插件

如何避免黑客攻击?国内首个云端加密代码库来帮忙

阿里云云效

阿里云 云原生 云效 代码安全 代码加密

TCP协议:如何保证页面文件能被完整送达浏览器?

Tristan

前端 网络层 TCP协议

群晖 NAS 安装的 Docker MySQL 数据库没有办法通过局域网连接

HoneyMoose

你真的会 i++吗

爱笑的小雨

客户之声|客如云上线 OceanBase 小记

OceanBase 数据库

数据库 oceanbase 客户实践 客如云

北京大学拔山讲坛 | OceanBase 阳振坤:特斯拉电动汽车的发展对分布式数据库的启示

OceanBase 数据库

数据库 oceanbase 北京大学 线上讲座

编程术语的类比(一)

北极的大企鹅

思维转换 编程思想

演讲实录|云原生时代,OAM模型加持下的应用交付与管理实践

York

运维 云原生 OAM 应用开发

运维接受新挑战!网易云原生运维体系建设之路

网易数帆

Kubernetes 云原生 运维自动化

详解Swin Transformer核心实现,经典模型也能快速调优

百度大脑

Android编译优化系列-kapt篇

字节跳动终端技术

android 字节跳动 编译优化 火山引擎 火山引擎MARS

推荐学java——SpringMVC第一课

逆锋起笔

springmvc java框架 Spring Java 3月月更

教你3种Kafka的指定副本作为Leader的实现方式

华为云开发者联盟

Leader Kafk 副本 AR顺序

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