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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 容器和虚拟机之间有几分相近,也有很大区别,我们应该学会在正确的时间,正确地使用容器与虚拟机,以消除它们之间的混淆。本文就容器和虚拟机的使用和管理提供了一些建议。

前言

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

 

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

 

最简单的容器使用场景是将现有的应用程序打包进Docker容器并分发:将所有应用程序的附属项都封装到Docker映像中,并添加单个文本文件(Dockerfile)来解释如何创建映像。

监控这些容器与监控服务器是一样的,该应用程序使用的进程和资源都可以在服务器上查看,没有必要确认服务器所有必需的组件,因为它们都封装在Docker映像中,并由Docker文件管理,包括正确的Java版本和Python库。

 

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


将应用程序放在Docker容器中意味着你不需要在服务器上更新和修复代码,只需要更新Dockerfile并构建一个新的Docker映像即可。

2312f230c2751511585c0c75becbb7ef10810de9


通过从标准的虚拟化模型中除去一层软件,容器的性能会提高10%到20%。

 

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

 

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


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

 

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

 

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

 

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


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

29bdc7b92fe9aa58f5462f452fb55aa3c56c0547

虚拟机提供了裸机的灵活性,而容器只需要更少的资源来优化利用率

 

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

 

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

 

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

  

关于译者Ghostcloud

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


本文为翻译文章,文章观点归原作者所有

原文链接:https://dzone.com/articles/mastering-the-art-of-container-management

 

目录
相关文章
|
5月前
|
XML Java 编译器
如何使用IOC容器进行对象的管理和创建?
如何使用IOC容器进行对象的管理和创建?
如何使用IOC容器进行对象的管理和创建?
|
5月前
|
Cloud Native 测试技术 持续交付
Docker Compose 解析:定义和管理多容器应用,从多角度探索其优势和应用场景
Docker Compose 解析:定义和管理多容器应用,从多角度探索其优势和应用场景
134 0
|
5月前
|
Cloud Native Docker 容器
【云原生】一文秒会Docker容器企业化管理
【云原生】一文秒会Docker容器企业化管理
35 0
【云原生】一文秒会Docker容器企业化管理
|
5月前
|
运维 网络协议 测试技术
软件测试|docker ps命令 管理和监视容器的利器
软件测试|docker ps命令 管理和监视容器的利器
58 0
|
6月前
|
监控 Shell Docker
深入了解 Docker 容器操作命令:掌握容器化管理的关键
Docker 已经成为现代应用程序开发和部署的行业标准。它借助容器化技术,提供了一种轻量、可移植和可扩展的方式来构建、发布和运行应用程序。然而,最近我在工作中发现,一些家人们对 Docker 容器的操作命令还不太熟悉。因此,本文旨在深入介绍 Docker 容器操作的各个方面,包括对每个命令及其参数的详细解释。希望通过这篇文章,我们可以一起探讨和学习,进一步提高对 Docker 的理解和应用能力。
107 1
 深入了解 Docker 容器操作命令:掌握容器化管理的关键
|
6月前
|
Prometheus 监控 Cloud Native
云原生容器Clouder认证:容器应用与集群管理—课时8:查看和管理集群
云原生容器Clouder认证:容器应用与集群管理—课时8:查看和管理集群
101 0
|
7月前
|
数据采集 Kubernetes 应用服务中间件
OpenKruise x iLogtail:管理可观测数据采集Sidecar容器最佳实践
在Kubernetes集群中使用Sidecar容器采集业务容器的可观测性数据是一种常见的数据采集部署方式,然而Sidecar容器对业务部署的侵入性和生命周期管理的复杂性使得这种部署模式的管理代价不仅高昂而且容易出错。本文对Sidecar采集容器管理的难点进行分析,使用OpenKruise提供的管理能力逐一解决,并以iLogtail为例给出基于OpenKruise管理可观测数据采集Sidecar容器的最佳实践。
271 0
OpenKruise x iLogtail:管理可观测数据采集Sidecar容器最佳实践
|
9月前
|
存储 资源调度 Kubernetes
Web开发者的云原生指南(3)容器编排与管理
本节将深入介绍容器编排和管理工具 Kubernetes 的使用。我们将逐步了解 Kubernetes 的简介和架构,如何安装和配置 Kubernetes,以及在 Kubernetes 集群上部署应用程序。此外,我们还会详细讨论 Kubernetes 的核心概念,包括 Pod、Deployment、Service,以及资源调度和伸缩、监控和日志管理,以及网络和存储管理。
265 1
|
9月前
|
Java 关系型数据库 MySQL
java new创建的对象不会被Spring容器进行管理
java new创建的对象不会被Spring容器进行管理
150 0
|
10月前
|
Java Spring 容器
如何在非Spring容器管理的类中注入/获取 Spring容器中的 Bean?
如何在非Spring容器管理的类中注入/获取 Spring容器中的 Bean?
139 0

相关产品

  • 容器镜像服务
  • 容器服务Kubernetes版