【译闻】容器的管理,也是一门艺术

前言
容器和虚拟机之间有几分相近,也有很大区别,我们应该学会在正确的时间,正确地使用容器与虚拟机,以消除它们之间的混淆。本文就容器和虚拟机的使用和管理提供了一些建议。

众所周知,如果你只需要处理一种类型的容器,那么在云环境中管理容器就很简单。可一旦面对容器集群的管理,面对这种多样化技术,那必将伴随着一系列全新的管理挑战。成功管理的关键在于,你要在坠入陷阱之前敏锐地发现它。

最简单的容器使用场景是将现有的应用程序打包进Docker容器并分发:将所有应用程序的附属项都封装到Docker映像中,并添加单个文本文件(Dockerfile)来解释如何创建映像。
监控这些容器与监控服务器是一样的,该应用程序使用的进程和资源都可以在服务器上查看,没有必要确认服务器所有必需的组件,因为它们都封装在Docker映像中,并由Docker文件管理,包括正确的Java版本和Python库。

容器如何更改服务器的管理任务

将应用程序放在Docker容器中意味着你不需要在服务器上更新和修复代码,只需要更新Dockerfile并构建一个新的Docker映像即可。
【译闻】容器的管理,也是一门艺术
通过从标准的虚拟化模型中除去一层软件,容器的性能会提高10%到20%。

容器的启动和停止是秒级的,这比虚拟机快得多。支持微服务的应用程序将使用更多的容器,其中大多数都更新频繁。该应用的每一个微服务都有自己的Docker映像,即微服务可以通过创建或停止容器来扩大或缩小应用的规模。

如何克服容器可移植性的障碍

由于你的应用程序依赖于容器之外的数据,所以你需要对存储进行安排。最常见的形式是容器集群上的本地存储,将存储插件添加到每个容器映像中,并对公有云存储AWS和Azure使用不同的存储服务。

Google 的Kubernetes集群管理工具在容器编排管理方面提供了比Azure或AWS更灵活、更稳定的性能。但Google、Azure和AWS提供的服务都有一个共同的缺陷,便是它们将数据一定程度上限制在了平台上,这使得应用程序的可移植性变得复杂。

云容器存储的另一个缺点是不一致的安全策略。跨平台应用和执行安全访问规则从来都不是件容易的工作。容器安全性的基础是用户/组目录和用于实施访问控制的身份管理系统。

选择容器还是虚拟机需要考虑的因素有哪些

容器和虚拟机之间的差异是:虚拟化发生在不同的位置。虚拟机使用监控管理程序将服务器划分到操作系统级别以下,因此虚拟机只共享硬件。容器的虚拟化发生在操作系统级别,因此容器共享操作系统和一些中间件。在虚拟机上运行应用程序更像是在裸机上运行它们,相反,在容器上运行的应用程序必须符合单一的软件平台。

【译闻】容器的管理,也是一门艺术
虚拟机提供了裸机的灵活性,而容器只需要更少的资源来优化利用率

另一方面,由于在部署和重新部署应用程序和组件时,平台软件的复用率要低得多,所以容器的开销较虚拟机更少。每个服务器不仅可以运行更多的应用程序,而且容器可以让你更快地部署和重新部署虚拟机。

还有一个缺点值得重视:联合托管。当在容器中部署应用程序来共同托管所有应用程序的组件以加速网络连接,这被认为是最佳的实践方案。然而,联合托管使得故障的处理和资源的转移更加困难,这是混合云的两种常见情况。

在混合云环境中的监测方面,云管理平台已经显示了容器和虚拟机之间的区别。但面对安全性和合规性,要平衡容器和虚拟机之间的差异性可能还需要更长的时间。

本文为翻译文章,文章观点归原作者所有
原文链接:https://dzone.com/articles/mastering-the-art-of-container-management

关于译者Ghostcloud
Ghostcloud(中文名:精灵云)是成都精灵云科技有限公司旗下的基于Docker的PaaS/CaaS平台品牌,核心团队由来自EMC、Veritas、华为、IBM、Microsoft的核心技术主管和架构师组成。国内首批从事容器虚拟化研发的企业,为企业级行业客户提供针对互联网化、私有云管理平台、大数据业务基础架构的平台服务。在国内Docker社区贡献排名前三,主创团队曾参与Beego开源项目研发,并主导发布《Docker容器实战:原理、架构与应用》一书。Ghostcloud因容器技术而生,致力于为多个领域的“互联网+”转型企业提供服务,是一流的企业级容器云服务专家。