容器重新定义了操作系统(OS)的角色。随着大量繁重的工作转移到容器运行时,操作系统已经成为一个提供物理资源访问的“薄层”。这种转变催生了一种新的操作系统,称为容器优化操作系统(container optimized OS,COS)。             

COS构成了云原生堆栈的基础层,位于集群的物理基础设施之上一层。与传统操作系统相比,COS是一种轻量级操作系统,占用空间小得多。它包含运行容器运行时所需的最基本组件。选择正确的COS对维护CaaS部署有很大帮助。             

用户可以选择红帽公司的Fedora CoreOS,Talos System的Talos,Kinvolk GmbH的Flatcar Container Linux,或者SUSE的RancherOS,来部署COS。

大多数供应商提供可选的商业订阅计划,包括定期更新、修补程序和专业支持。          

Container-Optimized Operating System

Commercial Offerings

Product

Vendor

Fedora CoreOS

Red Hat

Talos

Talos Systems

Open Source Projects

Project

CNCF Status

Flatcar Container Linux

Not Submitted

RancherOS

Not Submitted

容器运行时              

容器运行时负责管理容器的生命周期,提供执行环境,并充当工作负载和主机操作系统之间的接口。             

2015年,Linux基金会发起了开放容器倡议(OCI),以实现容器运行时实现的平等。OCI目前定义了两个规范:运行时规范和镜像格式规范。             

根据OCI网站,运行时规范概述了如何运行解包到磁盘上的“文件系统捆绑包”。在较高的层上,OCI实现将下载OCI镜像,然后将该镜像解压到OCI运行时文件系统包中。             

镜像格式规范定义了如何创建OCI镜像(通常由构建系统完成),以及如何输出镜像清单、文件系统(层)序列化和映像配置。             

Mirantis收购Docker Enterprise后,商业版Docker Engine(Docker Engine Enterprise)由Mirantis出售,提供企业级支持和专业服务。

Containerd project已经发展成为容器运行时的行业标准。它是CNCF的一个毕业项目,在许多生产环境中使用。CRI-O目前是一个社区积极参与的CNCF孵化项目。             

Docker Engine(现在是Docker CE)是容器管理平台使用的最流行的容器运行时之一。Frakti是一个基于管理程序的Kubernetes容器运行时,通过在专用虚拟机中运行pod,提供了更强大的隔离。其他选择还有Kata Containers和runC。

Container Runtime

Commercial Offerings

Product

Vendor

Docker Engine Enterprise

Mirantis

Open Source Projects

Project

CNCF Status

containerd

Graduated

CRI-O

Incubation

Docker-CE

Not Submitted

Frakti

Not Submitted

Kata Containers

Not Submitted

runC

Not Submitted