为云原生堆栈选择操作系统和容器运行时
容器重新定义了操作系统(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 |
原文链接:
https://thenewstack.io/choosing-an-operating-system-and-container-runtime-for-your-cloud-native-stack/