管理单个容器化应用相对简单,但如果要在分布式系统中扩容到数百或数千个,确保可用性、互连性和可伸缩性会是巨大的挑战。容器编排可以应对这些复杂性。虽然 Kubernetes 是执行此任务的领先开源平台,但 Google Kubernetes Engine (GKE) 等全托管式容器编排工具可简化部署和持续管理,并减轻与 Kubernetes 相关的许多运营负担。
容器编排系统可自动预配、部署、扩缩和管理容器化应用,您无需操心底层基础设施。
开发者可在容器所在的任何位置实现容器编排,从而自动执行容器的生命周期管理。
对于企业开发和运营团队而言,这意味着要从手动流程转向声明式自动化系统。您只需声明应用所需的状态,而无需指定如何执行部署新版本、扩缩以应对流量高峰或从硬件故障中恢复等任务。
Kubernetes 编排的工作原理是,管理机器集群并根据容器所需的资源和用户定义的目标状态将容器部署到这些机器上。该系统由几个协同工作的关键概念组成。
容器编排平台提供了自动执行容器编排的工具,并且使您能够安装其他开源技术(例如 Prometheus)用于事件记录、监控和分析。
容器编排平台主要有两种类型:自行管理和托管式。
Kubernetes 本身提供核心编排功能,而一系列集群工具可以协同工作,帮助提高安全性、简化管理并实现扩缩。下面列出了一些相关工具:
借助 Google Kubernetes Engine (GKE) 等容器编排工具,您可以更轻松地部署和运行容器化应用及微服务。容器编排工具通常会应用自己的方法并提供不同的功能,但它们都能够让组织自动协调、管理和监控容器化应用。
虽然最终结果相同,都是运行着的、托管的容器化应用,但 Kubernetes 和 GKE 涉及的步骤和工作量却大相径庭。
Kubernetes 可自动执行一些原本需要大量人工操作的关键功能。正是这些核心功能,让 Kubernetes 成为如此强大的编排平台。
容器编排的最大优势之一是简化操作。自动执行任务不仅有助于最大限度地减少管理容器化应用所需的工作量和复杂性,还可以带来许多其他好处。
可靠的应用开发
容器编排工具可加快应用开发并使应用开发可重复。这样可以提高部署速度,使其成为支持 DevOps 等敏捷开发方法的理想选择。
可伸缩性
容器编排可让您根据不断变化的工作负载要求来扩缩容器部署。如果您选择托管式服务并按需扩缩您的底层基础设施,则还可以获得云的可伸缩性。
费用更低
容器需要的资源少于虚拟机,这有助于减少基础设施和开销费用。此外,容器编排平台需要的人力资源和时间更少,这可以进一步节省费用。
增强型安全
容器编排可让您跨平台管理安全政策,并帮助减少可能导致漏洞的人为错误。容器还可隔离应用进程,减少攻击面并提高整体安全性。
高可用性
使用容器编排工具可以更轻松地检测和修复基础设施故障。如果容器发生故障,容器编排工具可以自动重启或替换容器,这有助于维持可用性并提高应用的正常运行时间。
提高工作效率
容器编排可以提高开发者的工作效率,帮助减少重复性工作,并免除安装、管理和维护容器的负担。
假设您有 50 个容器需要更新。如果进行手动操作,但您的团队需要投入多少时间和精力才能完成这项工作?借助容器编排,您可以编写配置文件,而容器编排工具将为您完成所有工作。这只是容器编排帮助减少运维工作量的一个例子。
现在,假设这些容器是使用不同的操作系统和语言开发的,那么部署、扩缩和保护它们需要多长时间?如果必须将它们迁移到不同的环境中,又需要多长时间?声明式方法可以简化保持容器顺畅运行所需的大量重复和可预测的任务,例如资源分配、副本管理和网络配置。 以下是一些常见的容器编排应用场景: