CRI-O进入CNCF孵化阶段,或将挑战Docker在容器界的地位

根据ZDNet的消息,近期CNCF正式接纳了CRI-O为孵化项目,这意味着CRI-O或许将直接挑战Docker作为顶级容器运行时的地位。

CRI-O(Container Runtime Interface Orchestrator) 是一个轻量级的,专门对Kubernetes进行优化的容器运行时环境。CRI最初是作为API来定义对容器运行时的调用,这允许用户开发Kubernetes友好的轻量级容器运行时程序。CRI-O是第一个与Kubernetes CRI兼容的容器运行时,由Google、Red Hat、英特尔、SUSE和IBM联合开发。

几年前,Docker很受欢迎。要大规模运行容器,你需要一个编排程序。到2017年底,Kubernetes已成为最受欢迎的容器编排器。

当然,你可以在Kubernetes之下用Docker运行容器。实际上,Docker仍然是Kubernetes的默认容器运行时。但轻量级的CRI-O运行时可以更好地通过API与Kubernetes一起使用。

CRI-O有如下功能:

  • 存储github.com/containers/storage 库用于管理层并为pod中的容器创建根文件系统:实现OverlayFS,devicemapper,AUFS和btrfs,OverlayFS作为默认驱动程序。
  • 容器镜像github.com/containers/image 库用于从注册表中提取图像。 目前,它支持Docker schema 2 /版本1以及schema 2 /版本2。它还通过了所有的Docker和Kubernetes测试。
  • 网络:容器网络接口(CNI)用于为容器设置网络。各种CNI插件如Flannel,Weave,Cilium和OpenShift-SDN已经经过了CRI-O的测试,并且能按预期工作。
  • 监控github.com/containers/conmon 是CRI-O中的一个实用程序,用于监控容器,处理来自容器进程的日志记录,为附加客户端提供服务以及检测和报告内存不足的情况。
  • 安全:容器安全分离策略由一系列工具提供,包括SELinux,Capabilities,seccomp和OCI规范中指定的其他安全分离策略。

CRI-O已经非常受欢迎了。Kubernetes联合创始人Brendan Burns表示,部分原因是因为CRI-O的创始负责人不是在重复造轮子,而是使用共享组件,在生产中测试后改进的方法,以及现有的经过实战检验的代码。因为CRI- O是专为Kubernetes量身定制的,它针对性能,稳定性,兼容性和其他标准,特别是Kubernetes一致性测试,进行了调整。CRI-O是Kubernetes集群的构建块,可以根据需要促进容器的生命周期。

这是否意味着CRI-O将取代Docker? 是的,但也不是。

正如Red Hat高级工程师和CRI-O维护者Antonio Murdaca所解释的那样,“CRI-O是否会取代Docker?并不会,或者说,它是一个以Kubernetes为中心的运行时,因此它在Kubernetes的背景下取代了Docker。但是Docker作为我们习惯的开发工具,CRI-O是没有办法取代的,因为它没有实现Docker Engine API或Docker CLI。这意味着你不能使用Docker CLI与CRI-O守护进程通信。你必须经过Kubernetes才能实现通信。“

CRI-O仍然会给Docker带来竞争。正如CNCF首席技术官Chris Aniszczyk所写,“CNCF拥有各种容器运行时,我们很高兴CRI-O加入它们进行孵化。选择和竞争将使最终用户受益。”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章