多云环境实现容器效益最大化

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

与虚拟机相比,容器技术具有大量的优势。我们不仅要了解容器是如何实现多云应用程序可移植性的承诺,而且也要知道其不足之处。

对于那些希望跨云平台实现应用程序可移植性的企业来说,容器技术可以是一个可行的选项。通过精心规划和使用合适的工具,IT团队是可以直面挑战并在多云环境中实现容器技术优势的。

多云环境实现容器效益最大化

为了了解在多云环境下实现应用程序可移植性的潜在好处和风险,我们可将它与它的替代解决方案虚拟机进行比较。容器与虚拟机的不同之处在于:应用程序镜像与这些镜像中所包含的内容,以及生命周期管理等方面。

虚拟机部署要求应用程序镜像具有操作系统、中间件和应用软件的完整软件包。因此,这些镜像可以在符合应用程需求的硬件功能和资源容量(例如CPU和内存)的任何虚拟机上正常运行。只要主机服务器的虚拟机管理程序与虚拟机兼容,并且应用镜像所使用的任何都可以在云平台上使用,那么用户也就没有什么重大的执行方面问题。

另一方面,容器应用镜像并不包含操作系统或所有的中间件组件。所以,它们的正常运行主要依赖于容器主机和容器软件本身。这意味着,如果容器需要跨云供应商的不同应用程序镜像,那么它们可能会在多云环境中造成挑战。

但是,大多数容器软件都将应用打包在一个标准容器中间件集合中,然后那个容器就可以跨容器软件将要运行的任意主机上实现可移植性。只要用户能够确保每一台基础设施即服务(IaaS)主机上都部署了相同可用的操作系统和容器软件,那么这种可移植性一般来说就会正常发挥作用。但如果用户无法确保上述要求,那么容器就根本无法保持可移植性。

对于涉及容器技术的多云规划来说,可选择都基于相同容器主机操作系统和框架的公共云资源和私有云资源。如果用户所使用的操作系统或中间件功能并未在所有的操作系统发布版本中得到支持,那么就必须特别谨慎了。通过使用标准基,用户可能可以对其容器化的应用实现跨云平台的迁移而不会出现执行问题。否则,用户则需要避免多云环境部署或需要迁移至虚拟机。

多云环境容器的运行效益

尽管存在着一些规划方面的挑战,用户还是能够在多云部署中实现容器的一些优势。

例如在运行方面,Docker和其他容器系统会包括一个配置和参数架构,这个架构会将所有工作负载运行所需的组件都打包在一个单一的软件包中,从而更便于针对特定环境调试容器镜像。在虚拟机系统中,配置和参数都是根本不在管理范围内的——虚拟机的操作系统、驱动程序和应用程序都是完全与管理和底层主机隔离的。

因此,运行人员必须为每一家云供应商准备一个不同的镜像,从而带来了更多的工作量和导致错误的机会。这一点不同可以实现不同云供应商之间的容器可移植性。但是,用户将需要确保所有特定供应商组件与应用程序配置之间的无关性,以便最大限度利用这个功能。换而言之,容器对特定供应商API或其他功能的依赖程度越高,迁移的难度也越大。

网络与多组件应用

网络是容器技术发挥其优越性的另一个领域。多组件应用(例如那些基于微服务器的应用)都是多云计算环境中常见的应用,而那些应用组件都必须处于联通状态。虚拟机没有特定的网络模式;应用在操作系统和中间件的支持下能够完成相当多的工作 。这就要求运行人员为应用组件建立一个网络以便能够在多云环境中实现应用程序组件在每一个IaaS平台上的可用性。不同的是,容器设定了一个通用的子网模型来实现连接,这种做法更易于管理。

管理人员可以更容易地扩展容器系统并通过容器集群提高其弹性。一个集群为应用组件定义了一系列的托管点,并且它们都是便携的。但是,在多云环境中还是需要花一点功夫提高容器组件的可扩展性和和弹性,因为一般情况下集群会共享一个子网。当他们需要跨越云平台边界时,这就可能会带来挑战,因为不同的供应商会使用不同的子网划分规则或限制(例如不同节点之间的负载平衡),而这些规则或限制会影响集群的功能。

对于扩展规模和提高跨多云部署中多组件弹性来说,虚拟机通常是更好的选择。这是因为虚拟机需要更精细的网络详细信息,从而降低迁移至另一家供应商时出现错误的风险。

诸如Docker之类的单个容器平台并不适用于多云环境中的可移植性,至少不适用于实际的IT运营环境。但是,诸如Kubernetes之类的开发运营工具可以解决这一问题,而且这些工具有可能会发展成为支持虚拟云的概念,或者是可以跨越私有云和多云的一个单一模式。 


原文发布时间为:2017-10-18

本文作者:滕晓龙编译

本文来自云栖社区合作伙伴“51CTO”,了解相关信息可以关注。

相关文章
|
4月前
|
存储 消息中间件 容器
当一个 Pod 中包含多个容器时,容器间共享一些重要的资源和环境,这使得它们能够更有效地协同工作和交互。
当一个 Pod 中包含多个容器时,容器间共享一些重要的资源和环境,这使得它们能够更有效地协同工作和交互。
|
12天前
|
负载均衡 网络协议 算法
Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式
本文探讨了Docker容器环境中服务发现与负载均衡的技术与方法,涵盖环境变量、DNS、集中式服务发现系统等方式,以及软件负载均衡器、云服务负载均衡、容器编排工具等实现手段,强调两者结合的重要性及面临挑战的应对措施。
33 3
|
2月前
|
存储 监控 Shell
docker的底层原理二:容器运行时环境
本文深入探讨了Docker容器运行时环境的关键技术,包括命名空间、控制组、联合文件系统、容器运行时以及分离的进程树,这些技术共同确保了容器的隔离性、资源控制和可移植性。
45 5
|
3月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
4月前
|
Kubernetes 监控 Shell
在K8S中,我们公司用户反应pod连接数非常多,希望看一下这些连接都是什么信息?什么状态?怎么排查?容器里面没有集成bash环境、网络工具,怎么处理?
在K8S中,我们公司用户反应pod连接数非常多,希望看一下这些连接都是什么信息?什么状态?怎么排查?容器里面没有集成bash环境、网络工具,怎么处理?
|
4月前
|
人工智能 Kubernetes 持续交付
Kubernetes环境下基于微服务架构的容器化AI应用部署与管理最佳实践
【8月更文第19天】随着AI技术的快速发展,越来越多的企业开始将AI应用部署到生产环境。然而,AI应用往往包含大量的组件和服务,这使得其部署和管理变得非常复杂。微服务架构和容器化技术(如Docker)结合Kubernetes集群管理,为解决这些问题提供了强大的工具。本文将介绍如何在Kubernetes环境中部署和管理基于微服务架构的容器化AI应用。
206 0
|
7月前
|
算法 计算机视觉 Docker
Docker容器中的OpenCV:轻松构建可移植的计算机视觉环境
Docker容器中的OpenCV:轻松构建可移植的计算机视觉环境
118 3
Docker容器中的OpenCV:轻松构建可移植的计算机视觉环境
|
7月前
|
运维 安全 Linux
深入理解Docker自定义网络:构建高效的容器网络环境
深入理解Docker自定义网络:构建高效的容器网络环境
299 6
|
7月前
|
监控 安全 云计算
云端防御战线:云计算环境下的网络安全策略构建高效稳定的Docker容器监控体系
【5月更文挑战第27天】 在数字化时代的浪潮中,云计算已成为企业与个人存储和处理数据的重要平台。然而,随着云服务使用率的飙升,网络威胁也愈发狡猾且复杂。本文将深入探讨在云计算环境中维护网络安全的挑战及策略,重点分析信息安全的关键组成部分,并提出多层次防御模型以增强云环境的数据保护能力。通过剖析最新的安全技术与实践,我们旨在为读者提供一套全面的网络安全解决方案蓝图。
|
7月前
|
存储 运维 Kubernetes
构建高效稳定的容器化运维环境:Docker与Kubernetes的协同
【4月更文挑战第14天】 在当今快速发展的云计算时代,容器技术以其轻量级、快速部署和易于管理的优势,成为现代应用交付的标准。本文将深入探讨如何通过Docker和Kubernetes的整合使用来构建一个高效且稳定的容器化运维环境。我们将分析Docker容器的基本概念,探索Kubernetes在容器编排方面的强大能力,以及两者结合所带来的益处。文章还将讨论在实际部署中可能遇到的挑战,并提出相应的解决方案。