为什么在容器化世界中操作系统至关重要

尚无读者喜欢这篇文章。
Outline of a plane in the sky with clouds

Opensource.com

在物理服务器上运行的单个操作系统副本中,运行在 Linux 容器中的应用程序是隔离的。这种方法与基于 hypervisor 的虚拟化形成对比,在后者中,每个应用程序都绑定到客户操作系统的完整副本,并通过介入的 hypervisor 与硬件通信。因此,容器消耗的系统资源(如内存)非常少,并且基本上不对应用程序造成性能开销。

使用容器的含义之一是,在给定环境中运行的操作系统副本往往是相对同质的,因为它们本质上充当了所有在其上运行的应用程序的某种通用共享基底。特定的依赖项可以与应用程序一起打包(在用户空间中的隔离进程中),但是内核在系统上运行的容器之间共享。

因此,操作系统不再像过去那样被配置、调整、集成并最终与单个应用程序绑定,但对于这种变化而言,它的重要性丝毫不减。事实上,由于操作系统为所有在其上运行的容器提供框架和支持,因此它比硬件服务器虚拟化(主机是 hypervisor)的情况下扮演着更重要的角色。(当然,例如在 KVM 的情况下,hypervisor 利用操作系统来实现它所需的类操作系统功能,但是 hypervisor 架构本身并没有要求这样做。)

所有适用于虚拟化世界的安全加固、性能调优、可靠性工程和认证仍然适用于容器化世界。实际上,与 hypervisor 处理其中一些任务的情况相比,操作系统在提供安全性和资源隔离方面承担着更大的责任。我们也在朝着操作系统显式处理多主机应用程序的未来发展,充当它们的编排器和调度器。这包括跨多个主机和容器对应用程序进行建模,并提供服务和 API 以将应用程序放置到适当的资源上。换句话说,Linux 正在发展以支持这样一种环境,其中“计算机”越来越多地成为互连系统的复杂集合,而不是单个离散服务器。

在这样的环境中,拥有一个可移植地组合应用程序的机制也变得越来越重要。一般概念并不是什么特别新鲜的事物。在整个 21 世纪的头十年,作为一名行业分析师,我花了很多时间撰写关于当时可用的各种虚拟化和分区技术的研究报告。其中一组技术是“应用程序虚拟化”。作为一个类别,应用程序虚拟化仍然是一个小众市场,但最近它被重新构想。包括 Docker 在内的技术正在利用容器模型来创建看起来非常像应用程序虚拟化旨在实现的目标:将应用程序组合为一组层,并在环境中以低开销移动它们。

是的,操作系统绝对正在进行抽象化;我们正在远离伴随每个应用程序实例的手工制作和硬编码的操作系统实例——正如我们之前远离为每个单独的服务器精心制作的操作系统实例一样。而且,是的,依赖于这种广泛的操作系统自定义才能工作的应用程序与容器化环境不太匹配。使容器在今天如此有趣(而不是十年前的小众市场)的趋势之一是向更便携和更少状态的应用程序实例的全面转变。操作系统的作用仍然至关重要;只是您正在所有应用程序中使用标准基础镜像,而不是采用该标准基础镜像并为每个单独的应用程序进行调整。

将所有这些加在一起,应用程序变得更具适应性、更具移动性、更分散且更轻量。它们的放置和配置变得更加自动化。但是它们仍然需要运行在某些东西之上。一些坚实的东西。一些开放的东西。一些能够为新需求和新型工作负载而发展的东西。而这“某些东西”就是一个 (Linux) 操作系统。

User profile image.
Gordon Haff 是红帽技术布道师,是客户和行业活动中频繁且备受赞誉的演讲者,专注于包括红帽研究、开源采用和广泛的新兴技术领域。

7 条评论

操作系统的重性怎么强调都不为过。文章写得非常好。

天哪,真是一堆废话!大多数应用程序并非运行在手工制作或经过严重调整的操作系统上。

很大一部分真实世界的应用程序与操作系统紧密相关,或者在其配置文件中进行了认真调整。
仅仅在 Docker 容器中使用默认参数运行 Tomcat(正如您在周围的许多示例中看到的那样)是一种过于简单的方法。

回复 ,作者 Curious George (未验证)

今天的情况确实很复杂,这取决于您处理的工作负载类型。在传统的企业工作负载中,存在相当多的不同内核版本、不同配置/调优、不同操作系统。对于新型工作负载(微服务等),则不然。这就是为什么我预计在可预见的未来,硬件虚拟化和容器会混合使用。

回复 ,作者 mimmus (未验证)

什么是容器?它和 chroot jail 是一样的吗?

------------------------------
Steve Stites

与所有新兴技术一样,人们会发现运动解释的缺点。感谢您帮助启动教育过程,这有助于为新的思维方式指明方向,并最终淹没负面情绪。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.