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


戳蓝字“CSDN云计算”关注我们哦!

640?wx_fmt=jpeg


作者 | Frank Brown

来源 | RancherLabs

640?wx_fmt=jpeg

介  绍


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


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


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


  • 传统的全功能操作系统

  • 通用的精简操作系统

  • 专用于容器的操作系统


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


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


640?wx_fmt=jpeg

全功能操作系统


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


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


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


Ubuntu


640?wx_fmt=png


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


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


CentOS


640?wx_fmt=png


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


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


640?wx_fmt=jpeg

精简的操作系统


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


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


本章节将介绍两个发行版,BusyBox和Alpine Linux,以及它们在适当的环境中可以带来的优势。这两个操作系统是相关的——Alpine是基于BusyBox的,但是二者也存在一些关键的差异,使用户会在这二者之间做出不同选择。这些差异不仅涉及具体功能及特性,还涉及支持社区和生态系统。


BusyBox


640?wx_fmt=png


BusyBox很适合容器部署,恰巧因为它在设计时没有刻意考虑容器。BusyBox被其开发人员称为“嵌入式Linux的瑞士军刀”,它作为一个单一的小型可执行文件,包含大多数嵌入式应用程序所需的所有功能。这也“迫使”它在容器技术出现之前,就可以开始采用类似容器的方法进行部署了。


BusyBox可以使用Linux或其他POSIX操作系统作为其基础进行部署,并将它们与许多常见的Linux实用程序捆绑在一起。如此一来,它成为了一个紧凑的单文件可执行文件,其中包含“完整”Linux发行版的许多功能——尽管这些完整版本中的不少其他功能选项,都以节省空间的名义,被从BusyBox中删除了。


Alpine Linux


640?wx_fmt=png


如前所述,Alpine Linux基于BusyBox,但不论是目标还是细节,它都建立在更早期的Linux发行版上。BusyBox是因为是单一可执行文件而体积很小, 而Alpine Linux则是使用强化的内核,为其前身BusyBox的紧凑、简单的目标增加安全性。


相较于BusyBox,Alpine Linux能让开发人员更容易添加功能。它的发行版基于BusyBox和musl库之上,因此在添加功能的方便性或结构紧凑度的这些维度上,Alpine Linux一枝独秀。


Alpine Linux这是一个极限精简的操作系统,能够生成非常小的容器镜像以进行部署,而且加固的内核使其更适用于生产以及开发、部署。


640?wx_fmt=jpeg

容器操作系统


容器操作系统开箱即用,拥有内置的自动化和容器编排工具。它们被设计和构建为“主机”操作系统——托管Alpine和BusyBox等容器操作系统的操作系统。既然如此,为什么它们不是每个容器部署的自动选择呢?


容器操作系统的特征在于,它不仅仅是一个支持容器的软件,而是使用容器技术部署的软件。“容器一直向下”的体系结构意味部署的自定义程序更高、更灵活,从而比传统的OS部署复杂得多。另一方面,对于早期转向容器的组织,或者对于那些不一定适合容器架构的应用程序部署中,“全容器”架构并非那么容易。


对于那些寻找容器操作系统的企业而言,Rancher OS和Container Linux是两个主流的选择。本章节将介绍它们各自的优势,帮助开发人员根据自身情况做进一步选择。


RancherOS


640?wx_fmt=png


RancherOS中的每个进程都在Docker管理的单独容器中运行。对Docker的优化和依赖让RancherOS可以做到体积极小、启动极快。


除了基本的性能优势之外,RancherOS系统服务由Docker Compose定义和配置。这种依赖意味着只加载和部署应用程序所需的服务,从而进一步加速和简化部署。通过与cloud-init集成,再次简化了部署,从而实现了广泛和高速的自动配置和部署。


Container Linux


640?wx_fmt=png


CoreOS的Container Linux专为基于云的容器部署而设计。Container Linux已被Red Hat收购,针对公有云或私有云基础架构的集群部署进行了优化。


Container Linux和内核以及必要的实用程序一起,部署在单个可执行文件中,其他的实用程序和功能都部署在容器中。


Container Linux长期以来一直被广泛使用,可以在大多数公有云上部署。被Red Hat收购并没有减缓它的采用速度。Container Linux与开源许可一起分发,并拥有一个活跃的开发人员社区。


640?wx_fmt=jpeg

结  语


三大类可用于容器部署操作系统,开发团队应该选择哪种?


如果某个特定服务器的唯一目的是托管容器,那么像RancherOS和Container Linux这样的容器操作系统非常适合。这类操作系统的自动化、部署速度和一致的容器架构,使其成为那些希望优化容器托管环境的人的最佳选择。


如果要同时考虑容器和非容器应用程序,那么毫无疑问,像Ubuntu和CentOS这样的传统Linux部署也可以用作容器平台。它们的体系结构、实用程序、功能列表将使它们启动速度变慢并且需要更多系统资源,但如果启动速度和最小资源消耗不是关键考虑因素,那么这类操作系统是不错的选择。


还值得关注的是位于上述二者之间的BusyBox和Alpine Linux这样的极精简操作系统。单从容器部署的角度出发,这类操作系统可以满足需求;不过如果企业存在资源受限的非容器应用程序(例如物联网的应用程序),这些应用程序也应该作为整个应用程序环境的一部分被考虑进来。


了解不同类型操作系统的功能和限制之间的差异,对于任何用于生产的OS平台的讨论都至关重要。使用现代操作系统,真正的考量不应该满足于哪个操作系统可以工作,而是需要围绕哪个操作系统能最有效和最高效地完成工作。


640?wx_fmt=png


福利

扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


640?wx_fmt=jpeg


推荐阅读:

  • 这位博士跑赢“地震波”:提前 10 秒预警宜宾地震!

  • 同样是消息队列,Kafka凭什么速度那么快

  • 如何给老婆解释什么是微服务?

  • 任正非:华为 100% 没有后门

  • 阿里巴巴杨群:高并发场景下Python的性能挑战

  • 那些去德国的程序员后来怎么样了?

  • 新技术“红”不过十年,半监督学习为什么是个例外?

  • 独家对话V神! 质疑之下的以太坊路在何方?


640?wx_fmt=png真香,朕在看了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523373.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mongodb php代码实例,php操作mongoDB实例分析

本文实例讲述了PHP操作mongoDB的方法。分享给大家供大家参考。具体分析如下:mongoDB数据库是一种以json格式存储的数据库,非常适用于各种应用开发,这里就来给各位朋友介绍一些mongoDB学习实例.mongodb想要整合PHP,需要安装Mongo扩展,这个比较简单,现在说一下MongoDB…

实战_23_高可用负载均衡集群的实现(Mycat+ZK +HAProxy + Keepalived)

接上一篇:实战_22_Mycat设置开机自启https://blog.csdn.net/weixin_40816738/article/details/100086556 文章目录一、高可用集群架构实现思路二、环境部署准备2.1. 环境部署总览2.2. 架构图总览2.3. 架构图解说明三、架构功能分析3.1. 场景案例分析3.2. 架构功能点…

oracle与db2 市场占有率,oracle 与 DB2 的区别

1、DB2 访问前10行数据与Oracle区别DB2 :select * from test fetch first 10 rows onlyOracle :select * from test where rownum<10查询语句Db2:不提供隐形转换select * from employee where empno1010;oracle&#xff1a;提供隐形转换select * from employee where empno1…

拒修电脑后,妹子又约我学机器学习,好烦(甜)!

事情是这样的&#xff0c;自前年给学妹修了半年电脑后&#xff0c;我俩一直没联系&#xff0c;最近这位学妹最近又联系我&#xff0c;问我是否了解人工智能&#xff0c; 在得知我已经研究并且从事相关工作后&#xff0c;她立马约我出来认真聊聊。我的内心&#xff1a;好烦啊&am…

gbase 8s oracle,GBase8s 查看数据库表空间信息

onstat -d 查看数据库表空间信息onstat -d命令用于检查数据库空间的使用情况[gbasedbtnode13 ~]$ onstat -dYour evaluation license will expire on 2021-08-27 00:00:00GBase Database Server Version 12.10.FC4G1TL -- On-Line (Prim) -- Up 00:16:02 -- 2023104 KbytesDbsp…

2019年普通高等程序员招生统一考试

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 表姐也有话讲来源 | 表哥有话讲2019年普通高等程序员招生统一考试题号一二三总得分一、选择题&#xff08;每题5分&#xff0c;共计50分&#xff09;1、SQL语句写了一天都没过&#xff0c;这个时候应该&#xff08;&#xff…

MybatisPlus_进阶

#数据库连接 spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/mp_high?userSSLfalse&characterEncondingUTF-8&serverTimezoneGMT%2B8username: rootpassword: root # 日志管理 logging:level:root: warncom.gblf…

php 内存队列,memcache构建简单的内存消息队列_PHP教程

本文章来给各位同学介绍使用memcache构建简单的内存消息队列,用一个比较不错的实例来给大家介绍&#xff0c;希望此方法对大家有帮助哦。memcache功能太简单了&#xff0c;只能 set get 和delete&#xff0c; 只能保存key-value的数据&#xff0c; 不能保存列表。 当然也可以把…

idea maven插件tomcat内存溢出

setting->>>Build,Execution->>>Deployment->>>Maven->>>Runner->>>VM Options 粘贴复制以下内容&#xff1a; -Xms1024M -Xmx2048M -XX:PermSize256M -XX:MaxNewSize256M -XX:MaxPermSize512m

搞不懂SDN?那是因为你没看这个小故事…

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 小枣君来源 | 鲜枣课堂很久很久以前&#xff0c;有一个村子&#xff0c;名叫“通信童心村”。村里的每一户&#xff0c;都有一个男人和一个女人。每一户&#xff0c;都以搬砖为生。从不同的地方&#xff0c;搬到不同的地方。…

lighttpd sqlite3 php,fedora linux平台下搭建lighttpd+php+sqlite

(一)lighttpd1. 安装yum install lighttpd安装完成后&#xff0c;系统中应该多了一个用户lighttpd和组lighttpd。这个用户&#xff0c;默认是不允许登陆的。我们修改/etc/passwd&#xff0c;将lighttpd修改为如下形式。lighttpd:x:489:470:lighttpd web server:/home/lighttpd/…

玩转 Linux 常用命令

Linux是目前应用最广泛的服务器操作系统&#xff0c;基于Unix&#xff0c;开源免费&#xff0c;由于系统的稳定性和安全性&#xff0c;市场占有率很高&#xff0c;几乎成为程序代码运行的最佳系统环境。linux不仅可以长时间的运行我们编写的程序代码&#xff0c;还可以安装在各…

良心帖!看完这篇,你的 Python 入门基础就差不多了!

Python将纳入高考内容、小学生教材开始接触Python、Python列入全国计算机等级考试……全民学Python的话题铺天盖地&#xff0c;中国的Python学习者是全球第一&#xff0c;人才如此泛滥&#xff0c;甚至以后孩子都会&#xff0c;学习它还能体现自身高价值&#xff1f;30年前学英…

svm回归matlab工具箱很慢,PSO优化SVM参数进行回归预测,结果很不理想

具体程序代码如下&#xff0c;主要问题就是不管我怎么调整参数&#xff0c;最终的预测结果都没有太大的变化&#xff0c;还请了解这两大算法的帮忙看看问题出在哪里了&#xff0c;十分感谢&#xff01;tic;close all;clear;clc;format compact;load M2.mat %载入数据% 提取数…

Idea 依赖冲突一分钟解决2种方案

文章目录一、Diagrams解决方案1.1. 在pom.xml文件中&#xff0c;右击选择【Diagrams】-【Show Dependencies】1.2. 找到冲突的依赖1.3. 问题定位1.4. 解决方案1.5. 具体实现思路1.5.1. 查看spring-context的全局控版本1.5.2. 找到需要排除activemq-core中的spring-context的3.0…

2019年技术盘点容器篇(一):听UCloud谈风生水起的K8S | 程序员硬核评测

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者&#xff1a;刘晶晶据相关调研机构出具的报告数据显示&#xff0c;目前应用容器市场规模将从2016年的 7.62亿美元增长到2020年的27亿美元。显而易见&#xff0c;引入容器所展现的巨大灵活性有效推动了其采用速率&#xff0c;使企…

SpringBoot 整合ActiveMQ_企业实战

文章目录1. 新建Springboot工程2. 引入maven依赖3. ActiveMq配置类4. MQ生产者5. MQ 点对点消费者6. MQ 发布点阅消费者A7. MQ 发布点阅消费者B8. 统一测试类1. 新建Springboot工程 2. 引入maven依赖 <?xml version"1.0" encoding"UTF-8"?> <p…

怎样看Linux字体所在目录,Linux下列出所有字体的目录

fc-list|grep 黑/usr/share/fonts/adobe-source-han-sans/SourceHanSans-Bold.ttc: Source Han Sans HW TC,思源黑體 HW,思源黑體 HW Bold,Source Han Sans HW TC Bold:styleBold,Regular/usr/share/fonts/adobe-source-han-sans/SourceHanSans-Bold.ttc: 思源黑体,Source Han …

Docker精华问答 |为什么巨头会支持Docker?

如今Docker的使用已经非常普遍&#xff0c;特别在一线互联网公司。使用Docker技术可以帮助企业快速水平扩展服务&#xff0c;从而到达弹性部署业务的能力。在云服务概念兴起之后&#xff0c;Docker的使用场景和范围进一步发展。今天&#xff0c;就让我们来看看关于Docker的深度…