对于企业级生产,文章建议在虚拟机中运行容器,而非裸金属。虚拟化提供了更好的运营灵活性、安全性、性能、SLA满足和更低的总拥有成本。
译自:Should enterprises run containers in VMs or bare metal?
作者:Jelani Harper
容器的奇迹——它们的整体灵活性、可移植性以及对运行应用程序所需一切的逻辑封装——使它们成为开发和部署现代应用程序的主流方法。后者通过Kubernetes等编排平台得到增强,尤其适用于大规模部署。
尽管如此,关于如何最大限度地发挥容器的效用仍然存在疑问。您应该将它们运行在裸金属服务器上还是虚拟机 (VM) 上?在容器、Kubernetes和云原生技术时代,甚至还需要虚拟化吗?
对于独立的开发者来说,这些问题的答案无关紧要。但对于对运营灵活性、可扩展性、性能、服务水平协议 (SLA)、合规性和安全性有严格要求的企业来说,答案是明确的。
“与20、30年前传统时代的裸金属方法相比,在虚拟化环境中运行容器和虚拟机是一种更现代的方法,”Broadcom公司VMware Cloud Foundation产品营销主管Mark Chuang说。
虚拟化容器的运营灵活性
裸金属容器部署通常涉及运行一个版本Kubernetes的大型物理集群,多个应用程序依赖于该版本。然而,在VM中运行的容器由多个较小的集群组成,这些集群可以扩展底层的物理基础设施。每个集群都具有运行不同版本Kubernetes的灵活性,以适应该集群上特定应用程序的需求。
“如果你想更新某个版本的Kubernetes,你只需为该集群进行更新,”Chuang说。“你不会同时影响所有其他应用程序。”
相反,在运行多个应用程序的大型裸金属集群上,每个应用程序都必须更新——这既耗时又会影响生产力。在大型裸金属集群中,如果一个应用程序需要最新版本的Kubernetes,该集群中的所有应用程序都必须采用最新版本。Chuang警告说,这可能会导致兼容性问题,并对应用程序所有者造成干扰。
增强容器化应用程序的安全性
用户可以通过在虚拟化环境中运行容器来加强多层安全隔离。这既能保护数据完整性,又能增强数据隐私和法规合规性。
它还通过最小化影响范围来最大限度地减少代价高昂的安全漏洞的影响。由于在VM中部署容器提供了多层隔离,因此可以减少组织的攻击面。
Chuang说:“如果其中任何一层受到威胁,[攻击]就不会扩散。”
在虚拟化环境中,安全隔离发生在多个层面。
Chuang解释说:“在基于VMware的环境中,vSphere集群、工作负载控制平面、vSphere命名空间、Kubernetes集群和Kubernetes命名空间级别都存在隔离。”“此外,你还可以在网络层之上建立微细分。”
在裸金属容器部署中,命名空间是唯一的隔离点,因为Kubernetes命名空间通常在单个Kubernetes集群中以1:1的方式部署。
Chuang提到,如果发生漏洞,“该主机上的所有应用程序都共享相同的Linux内核,因此如果该内核受到影响,你将面临重大的安全问题。”
优化性能并满足SLA
Chuang表示,在裸金属方法中,很难与虚拟化部署大量容器的性能SLA相匹配。VM在资源负载均衡和性能SLA方面都优于裸金属上的容器。这在多应用程序或多租户环境中遇到“吵闹的邻居”时尤其如此。
吵闹的邻居问题发生在多个应用程序在同一主机或集群上运行时,其中一个应用程序对资源(涉及网络、计算、内存或存储)的需求激增。这种激增会对其他应用程序的资源可用性产生负面影响,从而阻碍其性能。
Chuang说,虚拟化允许用户通过提前指定“关于特定应用程序将获得多少资源的明确策略”来维护SLA。
此外,实时迁移和高级资源调度等技术可以将工作负载移动到未经历资源激增的主机上。
Chuang说:“在虚拟化集群中,你可以无中断地将工作负载从一个物理主机迁移到另一个物理主机,以提供其有效运行所需的计算、存储或网络性能,或者[你可以]让平台自动执行这些任务。”
这种能力,加上为应用程序指定资源分配策略,提高了组织满足性能SLA的能力。它还减少了启动和运行这些应用程序的开销。
Chuang说:“如果你没有有效地为应用程序提供所需的资源,那么你可能不得不采购并部署更多的服务器和主机。”“这会增加成本。”
关注总拥有成本
当应用程序国际化和扩展时,用于运行虚拟化和容器工作流的单一平台提高了部署效率,并带来了相应的成本优势。与在独立的孤岛中运行相比,当虚拟化和容器工作负载在相同的底层基础设施上运行时,用户可以实施一致的流程。
Chuang说:“大多数组织都在运行容器化应用程序和虚拟机上的应用程序的混合体。”
通过虚拟化运行这两种工作负载来简化底层架构,提供了许多成本效益。Chuang说:“你可以获得非常高的利用率,因为你可以混合搭配;你不会有任何闲置容量。”这些优势在规模化部署中得到放大,并对成本产生积极影响,尤其是在更高的利用率下。
Chuang说:“如果你有效地最大化了底层基础设施的使用率,那么你就不必购买那么多基础设施,因为闲置在独立孤岛中的部分会更少。”
此外,由于在虚拟化环境中部署容器可以最大限度地减少安全漏洞的传播,组织可以减少遭受高昂罚款、监管困境和诉讼的风险。
为什么虚拟化是企业级生产的关键
部署容器以及Kubernetes或Docker等容器编排平台与虚拟化结合的许多价值都与企业相关。扩展运营的灵活性是生产环境中的一个关键问题。组织还需要可靠的安全性来满足数据隐私、法规合规性和数据完整性要求。最后,高水平的性能对于跨行业和用例的关键任务工作负载是必需的。
虚拟化环境以经济高效的方式促进了这些优势,使其值得您考虑。在一个单一平台上为虚拟化和容器应用程序实现这一点可以降低总体成本——这就是为什么超大规模服务商(AWS、Google Cloud和Microsoft Azure)在其环境中为大多数客户工作负载采用这种方式运作的原因。