3类6种,主流容器操作系统全比较

5月8日 晚20:30,Kubernetes Master Class在线培训第五期《Kubernetes中的日志、监控与告警》即将开播,点击链接:http://live.vhall.com/317569561 即可免费预约注册!


介 绍

容器已迅速成为现代数据中心的必要组成部分。容器可以构建在各类操作系统中,那么企业该如何选择最合适的操作系统来运行自己的容器?

在容器部署时,研发的负责人需要知道操作系统的哪些特性和功能对于正在发布的应用程序至关重要,以及是否存在需要额外考虑的其他因素(如可管理性和配置灵活性),不同企业的情况与需求不同,选择自然也不尽相同。

不同的操作系统,如何在特性和基本功能方面进行比较?这些差异如何影响它们支持应用程序的方式?这些都是我们必须考量的重要问题。本文中我们将比较三类具有代表性的操作系统:

  • 传统的全功能操作系统

  • 通用的精简操作系统

  • 专用于容器的操作系统


在每个类别中,我们都会选择两个代表性的产品,这些产品能代表这一大类中的其他全产品或发行版。

通过本文,大家将能更清楚地了解不同操作系统类型之间的差异。IT负责人们也将更好地了解到,为什么开发人员可以为容器化应用程序选择一个操作系统而不是另一个,以及为什么他们可能支持或质疑这些选择。


全功能操作系统


“全功能操作系统”是什么意思?为什么在容器部署的情况下,完整功能会很重要?本节将介绍为什么在传统服务器部署中使用的操作系统,也可能是为容器平台选择操作系统时的最佳答案。

首先要知道的是,这类操作系统的功能无疑是最齐全的。如果某个应用程序需要某个特定的特性或功能,全功能操作系统或许都能满足它。不过这种“齐全”也是有一定代价的:同时,这些功能还会增加操作系统的***面,为潜在的***者提供更多的角落和缝隙进行***。不论是价格成本还是安全风险,如果操作系统的这些功能都是应用程序需要的,那么这些成本也就很容易承担了;但如果只需要少量功能,相较之下性价比就略低。

这些功能齐全的操作系统,最适合的用例,是企业需要在单个OS实例之上的容器中部署多个不同应用程序。在这些情况下,操作系统的功能的多而全,可能是支持应用程序队列的最经济的方式。

3类6种,主流容器操作系统全比较


Ubuntu已经成为许多企业在服务器、云甚至桌面上的默认操作系统。Canonical公司为Ubuntu提供了非常好的支持,Ubuntu提供各种可下载格式,包括支持物联网、容器、服务器或云的部署所需的实用程序包、shell、功能和功能集。

如今,Ubuntu已经开始瓜分曾经由Red Hat Linux一家独大的领域:Ubuntu一贯良好的声誉和企业级的支持,使得对于企业部署而言,它成为了一个稳妥的、“合理的”选择。不过,大家仍需记住的、很重要的一点是,不论在什么情况下,“合理的”都不意味着一定是“最好的”——它的功能齐全也意味着它的庞大,企业需要思考这种重与大是否适合自己。

3类6种,主流容器操作系统全比较


在全功能操作系统这一大类中,Ubuntu已经成为企业的一大主流选择,除此之外,CentOS则是另一个流行的、由社区驱动的开源操作系统,它是由Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。

CentOS强调社区对特性和功能的贡献及支持,同时仍然建立在其Red Hat基础的稳定性上。开源不意味着CentOS不被大型组织使用——美国国家实验室和几大主流云提供商的服务器上都用着CentOS。但是Ubuntu自称拥有比CentOS更快速的更新,其中包括那些更老、但经过良好测试的软件包。


精简的操作系统


容器,尽可能地将少而精的功能汇集在一起,创建完整的应用程序。那么,这类精简的操作系统缺少“完整”Linux发行版中的哪些功能——这对您的应用程序是否重要?从另一视角来看,将应用程序部署在那些将功能剥离到极限的精简操作系统上,优势是什么?

问题的答案在于,你的应用程序究竟对操作系统有什么要求,而精简的操作系统是否能满足这些基础要求。如果没有周全的准备,在使用过程中还需要人为添加应用程序所需的各种功能和小程序,那选择这类精简操作系统可以说是失败的,因为它在大小和简单性方面的优势所剩无几。

3类6种,主流容器操作系统全比较