CRI-O项目即将由CNCF负责托管

当地时间3月8日,云原生计算基金会(简称CNCF)技术监督委员会(简称TOC)投票决定接收CRI-O作为孵化级托管项目。由红帽公司打造的CRI-O是一套Kubernetes容器运行时接口(简称CRI)实现方案,旨在支持Open Container Initiative(简称OCI)兼容运行时的使用。

TOC代表兼项目赞助方、Kubernetes联合创始人Brendan Burns指出,“CRI-O的建立初衷在于「不再重新发明轮子」,而是利用共享组件、改进生产环境中的测试方法,同时复用已经经过实际检验的代码成果。由于CRI-O专门针对Kubernetes所量身打造,因此其针对性能、稳定性、兼容性以及标准遵循情况进行了调整,其中特别关注Kubernetes一致性测试。CRI-O可以作为任何Kubernetes集群的构建单元,可根据Kubernetes CRI的具体要求支持容器生命周期。”

2016年,Kubernetes项目首次引入CRI机制。作为插件接口,它负责为kubelet(用于创建Pod以及启动容器的集群节点代理)提供使用不同容器运行时的能力,且无需对Kubernetes进行重新编译。在这一成果的基础之上,CRI-O项目(最初曾被称为OCID)被创造出来,负责为Kubenetes提供一套轻量级运行时环境。

CRI-O最初作为Kubernetes孵化器项目建立,主要由红帽以及谷歌公司的开发人员参与设计,旨在为符合OCI的运行时与kubelet之间提供集成路径。目前,此项目由红帽、英特尔以及SUSE共同维护,并得到Lyft、红帽以及SUSE等公司的使用。

云原生计算基金会CTO/COO Chris Aniszczyk解释称,“云原生计算基金会托管着多种容器运行时方案,我们很高兴能够将CRI-O吸纳进来作为新的孵化级项目。更多选项与竞争,都将给最终用户带来助益。我们期待着将CRI-O社区支持并培养成新的顶级项目社区。”

CRI-O主要功能:

  • 存储——github.com/containers/storage库用于为Pod当中的容器管理各层并创建root文件系统:包括实现Overlayfs、DeviceMapper、AUFS以及Btrfs,同时将Overlayfs作为默认驱动程序。
  • 容器镜像——github.com/containers/image库用于从注册表当中提取镜像。目前,其支持Docker schema 2/version 1以及schema 2/version 2。此库已经通过了全部Docker与Kubernetes测试。
  • 网络——容器网络接口(简称CNI)用于为容器设置网络。目前包括Flannel、Weave、Cilium以及OpenShift-SDN在内的各类CNI插件已经通过CRI-O进行了测试,且运行状况完全符合预期。
  • 监控——github.com/containers/conmon是CRI-O当中的一款实用程序,用于监控容器、处理来自容器进程的日志记录、支持客户端添加并检测与报告内存不足(简称OOM)问题。
  • 安全——容器安全隔离策略由多种工具共同负责实现,具体包括SELinux、Capabilities、seccomp以及其它由OCI规范指定的安全隔离策略。

值得关注的发展里程碑:

  • 105位贡献者
  • GitHub上1576颗星
  • 81 次发布
  • 3103 次提交
  • 277 个分叉
  • 代表3家公司的7名维护者

作为云原生计算基金会的托管项目,CRI-O正式加入已经包含OpenTracing、Fluentd、Linkerd、gRPC、rkt、CNI、Jaeger、Notary、TUF、Vitess、NATS、Linkerd、Helm、Rook、Harbor、etcd以及OPA等的项目大家庭。云原生计算基金会是一个大型Linux基金会,负责以中立态度通过符合技术利益的方式为项目提供治理、营销与社区扩展支持。已经从云原生计算基金会毕业的项目包括Kubernetes、Prometheus、Envoy、CoreDNS以及containerd等。

每一个CNCF项目都对应一个与之匹配的成熟度级别:沙箱级、孵化级或者毕业级项目。关于各个级别的更多技术资质信息,请点击 此处 访问CNCF毕业标准v 1.1。

若希望了解更多与CRI-O项目相关的信息,请访问 github.com/cri-o/cri-o 。您也可以关注 KubeCon + CloudNativeCon 2017大会 上的相关会话,或者参阅 The New Stack中发布的关于CRI-O 1.0版本的文章

原文链接: CNCF to Host CRI-O