什么是容器编排


开发人员可以在容器所在的任何地方实现容器编排,允许他们自动化容器的生命周期管理。

容器编排自动提供、部署、扩展和管理容器化应用程序,而不用担心底层基础设施。

Kubernetes 这样的容器编排工具使得部署和运行容器化应用程序和微服务更加容易。 容器协调器通常应用自己的方法并提供不同的功能,但是它们都使组织能够自动协调、管理和监视容器化的应用程序。

让我们来看看容器编排是如何工作的。

容器编排使用声明式编程,这意味着您定义所需的输出,而不是描述实现它所需的步骤。 开发人员编写一个配置文件,定义容器映像的位置、如何建立和保护容器之间的网络,以及配置容器存储和资源。 容器编排工具使用此文件自动实现请求的最终状态。

当您部署新容器时,该工具或平台会自动调度您的容器,并根据配置文件中定义的预定约束或要求(例如 CPU、内存、与其他主机的邻近程度,甚至元数据)找到最合适的主机。 。

容器运行后,容器编排工具会根据容器定义文件自动执行生命周期管理和操作任务,包括:

  • 配置和部署
  • 向上或向下扩展容器以及负载平衡
  • 在容器之间分配资源
  • 将容器移动到另一台主机以确保资源短缺或意外中断时的可用性
  • 应用程序的性能和运行状况监控
  • 在容器之间分配资源
  • 服务发现

容器编排可用于任何支持容器的计算环境,从传统的本地服务器到公共、私有、混合和多云计算环境。

容器编排的最大好处之一是它简化了操作。自动化任务不仅有助于最大限度地减少管理容器化应用程序的工作量和复杂性,还可以转化为许多其他优势。

优势
描述
可靠的应用程序开发 容器编排工具有助于使应用程序开发更快且可重复。 这提高了部署速度,并使它们成为支持 DevOps 等敏捷开发方法的理想选择。
可扩展性 容器编排允许您根据不断变化的工作负载需求来扩展或缩减容器部署。 如果您选择托管产品并按需扩展底层基础设施,您还可以获得云的可扩展性。
降低成本 容器比虚拟机需要更少的资源,从而降低了基础设施和管理成本。 此外,容器编排平台需要更少的人力资本和时间,从而进一步节省成本。
增强安全性 容器编排允许您跨平台管理安全策略,并帮助减少可能导致漏洞的人为错误。 容器还隔离应用程序进程,减少攻击面并提高整体安全性。
高可用性 使用容器编排工具可以更轻松地检测和修复基础设施故障。 如果容器发生故障,容器编排工具可以自动重新启动或替换它,从而有助于保持可用性并增加应用程序的正常运行时间。
更高的生产力 容器编排提高了开发人员的工作效率,有助于减少重复性任务并消除安装、管理和维护容器的负担。

容器编排平台提供了用于自动化容器编排的工具,并提供了安装其他开源技术以进行事件日志记录、监控和分析的能力,例如 Prometheus。

容器编排平台有两种类型:自建或托管。

自建容器编排器使您可以完全控制自定义,通常是从头开始构建或利用开源平台。 然而,自建选项也意味着您承担管理和维护平台的负担。

用于云原生开发的最常见的开源容器编排平台是 Kubernetes。 有时缩写为 K8s,它是一个开源容器编排系统,最初由 Google 基于其内部集群管理系统 Borg 开发。 如今,它被认为是部署和管理容器的实际选择。

另一种选择是使用云提供商(例如 Google、Microsoft、Amazon 或 IBM 或 AliBaba)提供的托管平台或容器即服务 (CaaS) 产品。 通过托管容器编排平台或 CaaS,云提供商负责管理安装和操作。 因此,您可以简单地使用这些功能并专注于运行容器化应用程序。

那么,容器编排有哪些示例?为什么我们首先需要编排容器?

在现代发展中,容器化已成为构建云原生应用的主要技术。 开发人员现在可以使用单独的、松散耦合的组件(通常称为微服务来组成应用程序,而不是大型的整体应用程序。

虽然容器通常更小、更高效并且更便携,但它们确实有一个警告。容器越多,操作和管理它们就越困难——单个应用程序可能包含数百甚至数千个单独的容器,这些容器需要协同工作才能提供应用程序功能。

随着容器化应用程序数量的不断增长,如果不使用自动化,大规模管理它们几乎是不可能的。这就是容器编排的用武之地,它可以在很短的时间内执行关键的生命周期管理任务。

假设您有 50 个容器需要升级。您可以手动完成所有工作,但是您的团队需要花费多少时间和精力才能完成工作? 通过容器编排,您可以编写配置文件,容器编排工具将为您完成所有工作。

这只是容器编排如何帮助减少运营工作负载的示例之一。 现在,考虑一下如果所有内容都是使用不同的操作系统和语言开发的,那么部署、扩展和保护这些相同的容器需要多长时间。如果您必须将它们转移到不同的环境中怎么办?

声明性方法可以简化保持容器平稳运行所需的大量重复性和可预测的任务,例如资源分配、副本管理和网络配置。