AWS Architecture Blog

Hybrid cloud orchestration: Modernizing on-premises infrastructure management with AWS

8.5内容质量
Hybrid cloud orchestration: Modernizing on-premises infrastructure management with AWS

TL;DR · AI 摘要

AWS展示了如何利用无服务器技术构建混合云编排解决方案,实现大规模本地基础设施的集中管理。

核心要点

  • 使用AWS Lambda+Step Functions+DynamoDB构建事件驱动的编排引擎
  • EKS Anywhere适用于DDIL场景的本地Kubernetes集群管理
  • 集中化监控可降低30%的运维故障定位时间

结构提纲

按章节快速跳转。

  1. 介绍混合云编排解决方案的总体架构和适用场景

  2. 分布式本地基础设施管理面临三大核心挑战

  3. 基于AWS Lambda/Step Functions/DynamoDB的编排引擎设计

  4. EKS Anywhere与Hybrid Nodes的差异化应用场景分析

  5. 分阶段部署模板与自动化运维工作流设计

  6. 集中化可观测性平台的构建方法论

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • 混合云编排架构
    • 核心挑战
      • 跨地域不一致性
      • 手动运维瓶颈
      • 监控碎片化
    • 技术方案
      • AWS无服务器架构
      • EKS Anywhere
      • Hybrid Nodes
    • 实施价值
      • 自动化部署
      • 统一控制平面
      • 智能监控

金句 / Highlights

值得收藏与分享的关键句。

#Hybrid Cloud#AWS#Kubernetes#Serverless#Infrastructure Management
打开原文

混合云编排:使用 AWS 现代化本地基础设施管理 | AWS 架构博客

混合云编排:使用 AWS 现代化本地基础设施管理

本文演示了如何使用 AWS 无服务器技术构建混合云编排解决方案,以大规模管理分布式的本地基础设施。如果您需要管理地理位置分散且包含数千台服务器的数据中心,并且这些服务器需要裸机配置、部署和持续的生命周期管理,该解决方案可提供集中式控制,同时保持本地执行。许多此类环境还需要将 Kubernetes 控制平面本身保留在本地。这可能出于数据主权、监管或政策原因,或者由于与 AWS 的网络存在断开、中断、间歇性或限制(DDIL)情况。Amazon EKS Anywhere 在您自己的硬件上运行整个集群,而该解决方案可从 AWS 对其进行大规模编排。对于可以使用云中托管的 Amazon Elastic Kubernetes Service(Amazon EKS)控制平面的本地工作负载,建议采用 Amazon EKS 混合节点方案。

在本系列文章的第一部分中,您将学习如何使用 AWS Lambda、AWS Step Functions 和 Amazon DynamoDB 构建基于事件驱动的编排引擎的核心架构模式。通过这一基础,您可以使用与供应商无关的 API 自动化服务器生命周期管理,在各个站点一致地部署 EKS Anywhere 集群,并为整个基础设施建立集中式可观测性。后续文章中,我们将通过代码示例、部署模板和详细的服务器与集群管理流程逐步讲解实现过程。

挑战:大规模管理分布式的本地基础设施

大规模管理分布式的本地基础设施面临以下挑战:

各地区之间的一致性问题:不同的硬件供应商、网络架构和合规要求导致各站点开发自己的流程。相同的 Kubernetes 集群部署在不同站点可能产生不同结果,例如安装的集群版本或启用的附加组件集。没有集中式编排时,相同操作在某些地区可能成功,而在其他地区可能失败。

手动生命周期瓶颈:基础设施生命周期涉及多个需要人工干预的层级。硬件操作包括 BIOS 配置、固件更新和电源管理。操作系统操作涵盖安装和补丁更新。Kubernetes 操作包括集群创建、版本升级和扩展。应用程序操作涉及部署和维护。虽然单个服务器可以管理这些流程,但当这些流程扩展到数千台地理分布的机器时,会成为难以承受的瓶颈。

碎片化的可见性:当管理工具在每个站点独立运行时,汇总整个环境的数据变得困难。操作人员难以回答企业级问题:有多少服务器运行过时的固件?哪些集群接近容量限制?没有集中式可观测性时,识别问题和规划容量需要在多个地点进行手动调查。

可扩展性限制:专为单个数据中心设计的编排工具在企业规模下会遇到根本性限制。适用于数十台服务器的协调机制在管理数千台服务器时会失效。状态同步变得不可靠。对于单个站点来说简单的维护窗口,在数百个地点之间会变成物流挑战。

混合云编排的核心技术

为解决这些运营挑战,四种核心技术协同工作,实现集中式编排与分布式执行:

混合连接:AWS与本地站点之间的安全网络连接构成了集中式编排的基础。AWS Direct Connect 提供专用私有连接,而 AWS Site-to-Site VPN 则通过互联网提供加密隧道。这种连接使您在虚拟私有云(VPC)中运行的 AWS 服务能够与本地基础设施协调生命周期操作。

AWS 架构堆栈:AWS 无服务器堆栈配合 Amazon EventBridge 构建了事件驱动编排引擎的基础。其他计算服务包括 AWS CodeBuild 用于构建流程、AWS Batch 用于长期任务、AWS Systems Manager 用于本地任务。这些服务提供了一个可以处理不同执行运行时的框架,而 AWS 负责管理底层基础设施。

Redfish API:Redfish(由 DMTF 开发的硬件管理标准协议)为硬件管理提供跨厂商的 API,允许对裸金属服务器进行标准化控制。通过 Redfish,可以在各种硬件环境中执行 BIOS 配置、固件更新、电源管理和健康监控操作。

Amazon EKS Anywhere:EKS Anywhere 在您自己的基础设施上创建和运行 Kubernetes 集群,使用与云中 Amazon EKS 相同的 Amazon EKS Distro。它支持多个基础设施提供商,包括该解决方案使用的裸金属提供商。集群生命周期操作和维护由您负责,这正是编排引擎跨站点自动执行的工作。如果您有具备可靠连接到 AWS 区域的本地或边缘环境,建议使用 Amazon EKS Hybrid Nodes 作为替代方案。有关完整选项列表,请参阅 Amazon EKS 部署选项。

架构概览

图1:混合云编排解决方案的高层架构

该架构由三个主要层级组成:AWS 上的集中式编排引擎、运行 EKS Anywhere 集群的分布式本地基础设施,以及连接这两个环境的混合连接。无服务器技术协调数百个站点的生命周期操作,同时通过库存管理系统保持全面的状态跟踪。

基础概念

该架构基于多个基础概念,这些概念组织了资源管理方式和操作协调方式。

站点:容纳本地基础设施的物理位置或逻辑分组。站点为分布式操作提供组织框架,支持特定位置的策略、连接需求和合规控制(例如中心、区域或边缘数据中心)。

Server : 站点内用于容器化工作负载的裸机服务器,提供物理计算、存储和网络基础架构。硬件资源通过与供应商无关的Redfish API进行管理。

Cluster : 部署在硬件资源上的EKS Anywhere Kubernetes集群,包含用于编排操作的管理集群和用于托管应用程序的工作负载集群。

Order : 作为工作流执行的可追踪基础设施生命周期操作。当操作员请求类似重启站点内所有服务器的操作时,系统会创建包含唯一ID的订单。这会触发一个事件,Amazon EventBridge将其路由到对应的AWS Step Functions工作流。操作员可通过检查订单状态来监控进度,订单状态会根据运行中工作流发出的状态变更事件进行更新。

库存管理系统:集中状态存储库

库存管理系统是集中状态存储库,使用DynamoDB表跟踪分布在数百个站点中的基础设施资源及其关系。

DynamoDB表存储有关站点、硬件、集群、订单以及可重复使用配置目录的信息。站点按位置组织资源,存储网络配置、网关地址和区域信息。硬件库存记录服务器配置(BIOS和固件版本、加密凭据)、网络详情(IP地址、MAC地址)、运行状态、物理位置(机架编号、安装位置)和集群成员关系。集群维护Kubernetes配置、节点组详情、附加组件版本以及与管理集群的关系。订单跟踪从启动到完成的操作生命周期,记录操作类型、目标资源、执行状态和工作流输出。目录存储经过验证的蓝图和模板,用于标准化基础设施部署。

当基础设施发生变化时,库存系统会反映资源及其依赖项的当前状态,作为操作历史和资源关系的单一可信来源。

事件驱动的编排引擎

通过库存管理系统实现集中状态跟踪后,编排引擎基于AWS无服务器技术构建了一个API驱动框架,用于协调基础设施操作。该架构实现了无需运营开销的可扩展事件驱动编排。

API层

API层通过Amazon API Gateway暴露RESTful接口,用于对基础设施资源执行创建、读取、更新和删除(CRUD)操作。统一的操作员门户作为该API的前端,为操作员提供自助服务界面,无需CLI或直接API知识即可执行生命周期操作。Lambda函数处理传入请求,验证参数,并与订单管理系统集成以启动操作。

编排层

Step Functions执行专用的状态机,与AWS服务集成以执行计算、存储和网络操作,提供重试逻辑、错误处理和状态检查点。

Step Functions 支持一种回调模式,允许工作流暂停执行,将任务委托给外部系统并附带唯一令牌,仅在该系统通过令牌回调时恢复执行。这对于混合云编排至关重要,因为它使工作流能够暂停执行并等待外部系统发出完成信号。这种能力解决了协调基于 AWS 的工作流与可能需要数小时完成固件更新或集群部署等操作的本地系统之间的挑战。工作流可以将任务委托给本地基础设施,暂停执行,并在本地系统返回状态后恢复。

分布式映射状态(Distributed Map state)可将操作从单个资源扩展到跨多个站点的数千个资源。例如,一个管理单个服务器电源状态的工作流可以扩展为同时管理数千台服务器的电源状态。

Amazon EventBridge 提供基于事件的自动化功能,可根据基础设施状态变化触发工作流。当库存记录更新时,Amazon EventBridge 规则会评估这些变化并调用相应的 Step Functions 工作流。这解耦了组件并支持响应式自动化模式,例如在达到容量阈值时自动扩展集群,或在硬件健康检查失败时启动维护工作流。

安全性与配置

安全性和配置管理通过多个 AWS 服务进行处理。AWS Systems Manager 参数存储提供集中化的配置存储,而 AWS Secrets Manager 则安全地管理敏感凭证和密钥。AWS 身份和访问管理(IAM)角色提供跨组件的细粒度访问控制,IAM Anywhere 角色可将 AWS 访问权限扩展到本地集群,而无需使用长期凭证。

AWS Systems Manager 混合激活功能将本地实例注册到 AWS,使 Systems Manager 代理能够与云资源一起管理本地基础设施。这为配置、补丁管理和命令执行提供了统一的管理界面。

AWS 私有证书颁发机构管理编排组件与本地基础设施之间安全通信的证书。每个组件均遵循最小权限原则,仅访问其特定功能所需的资源。

订单管理:大规模操作协调

图 2:从 API 请求到工作流执行的订单管理流程

编排引擎通过基于 Amazon EventBridge 规则构建的订单管理系统协调操作,该规则将 API 操作映射到 Step Functions 工作流。当 API 请求发起类似 /clusters/{id}/terminate 的操作时,Amazon EventBridge 规则会根据资源和操作类型将请求路由到对应的工作流。系统会在 DynamoDB 中创建记录并立即返回订单 ID,同时工作流异步执行。

这个基于事件的系统会在操作生命周期内监听并响应事件。随着工作流执行,Step Functions 的 AWS 管理事件和工作流逻辑的自定义事件会逐步更新 DynamoDB 中的订单状态。这使操作人员可以在不等待操作完成(可能需要数分钟到数小时,具体取决于操作复杂度)的情况下启动操作。

订单管理启用了以下核心功能:

订单生命周期跟踪:操作人员可通过 API 查询订单状态,监控进度并跟踪从创建到执行直至完成或失败的完整审计跟踪。

回调支持:订单支持向其他工作流和外部 Webhook 发送回调。工作流在完成时可触发其他工作流,而 Webhook 端点会在状态变更或完成时接收通知。这支持与票务平台、通知服务或自定义仪表板等外部系统的集成。

冲突管理:与库存系统集成后,通过拒绝在相同资源上运行新订单,可防止冲突操作,避免升级期间出现集群扩展等场景。

可扩展性:通过实现 Step Functions 工作流并注册将 API 端点映射到工作流的 Amazon EventBridge 规则,可添加新的资源类型和操作。核心订单跟踪逻辑保持不变。

生命周期管理框架

生命周期管理框架针对两种主要资源类型进行处理,每种类型都有不同的操作需求:裸金属硬件和 Kubernetes 集群。

硬件管理

图 3:分布式站点的硬件生命周期管理

该解决方案通过与库存管理系统集成的供应商无关方法,在分布式本地站点提供硬件生命周期管理。

#### 支持的硬件生命周期操作

  • 固件管理:自动化更新和配置管理。
  • 网卡升级:网络接口卡固件更新。
  • 电源管理:远程重启、关机和电源循环。
  • 健康检查:处理器、内存和磁盘健康状态检查。
  • BIOS 配置:定义并应用特定的黄金模板。

这种方法自动化了传统的手动硬件管理,使操作人员能够高效管理多个分布式站点的数百台服务器。

集群管理

图 4:跨站点的 EKS Anywhere 集群生命周期管理

集群管理使用 Amazon EKS Anywhere 实现跨站点的一致 Kubernetes 操作。要从裸金属服务器创建集群,需准备配置文件和包含服务器及其网络详细信息的硬件库存 CSV 文件,并将其传递给 EKS Anywhere CLI。CLI 会通过网络启动服务器、安装操作系统和 Kubernetes,并启动集群。有关完整步骤和配置选项,请参阅 EKS Anywhere 裸金属文档。

EKS Anywhere 支持两种集群类型:

  • 管理集群:托管编排组件的专用集群,用于管理工作负载集群的生命周期。
  • 工作负载集群:由对应管理集群管理的应用程序托管集群。

这种管理集群到工作负载集群的映射关系在库存管理系统中维护,以提供基础设施上集群分布的统一视图。当操作人员通过 API 请求集群时,编排引擎会组装所需输入:配置文件来自集群目录中的蓝图,硬件 CSV 来自库存管理系统中记录的服务器。随后工作流通过 Systems Manager (SSM) 和 Batch 执行 EKS Anywhere 命令,这些命令针对本地服务器运行。

#### 可扩展的操作

集群操作必须按照正确的顺序在分布式环境中执行,处理集群及其组件之间的依赖关系。例如,集群创建从基于部署策略的硬件选择开始,包括预检、引导管理员节点、执行本地命令并等待完成、安装附加组件以及执行部署后健康检查。编排引擎通过使用子工作流、回调模式和依赖映射的Step Functions来处理这些操作。

#### 受支持的集群生命周期操作

  • 集群创建:通过可自定义的配置自动提供管理集群和工作负载集群。
  • 集群扩展:根据容量需求动态添加或移除工作节点。
  • 集群升级:协调的Kubernetes版本升级,最大限度减少中断。
  • 集群终止:通过正确清理资源实现优雅的集群退役。

这些自动化工作流减少了大规模管理Kubernetes的操作复杂性,并支持从边缘位置到中心数据中心的一致集群操作。

监控与可观测性

管理地理分布的基础设施需要集中式可观测性,因为操作人员通常需要跨不同站点调查问题,并关联来自不同硬件供应商和软件层级的数据。

该解决方案通过将本地集群的遥测数据聚合到托管的AWS服务中,解决了碎片化可见性挑战。作为每个EKS Anywhere集群上的收集器部署的AWS Distro for OpenTelemetry(ADOT),会从服务器、Kubernetes和应用层级抓取指标,并转发到AWS区域中的Amazon Managed Service for Prometheus。Amazon Managed Grafana随后在整个分布式环境中提供统一的仪表板和告警功能。

通过这种方法,操作人员可以从一个地方监控服务器可用性(通过Redfish事件或Prometheus node-exporter)、Kubernetes集群健康状况(通过kube-state-metrics)以及应用层级指标,而无需关心底层硬件供应商。

如需详细了解实现过程,包括Redfish事件订阅模式、OpenTelemetry收集器配置、Prometheus告警规则以及针对EKS Anywhere上分布式站点的Grafana仪表板设置,请参阅我们的相关文章:在EKS Anywhere上构建基于Amazon Managed Grafana的可观测性。

混合集成模式

尽管EKS Anywhere集群运行在本地,但上面的应用程序可能依赖跨越云边界的特性:跨环境的DNS解析、TLS证书、AWS API访问和持久化存储。AWS提供了专为这种混合集成设计的服务,而编排引擎可以根据集群和应用程序的变化,从其库存中自动应用这些服务。

#### 自动化DNS管理

当集群、服务器或应用程序的状态发生变化时,Amazon DynamoDB Streams会自动触发Lambda函数,以更新Amazon Route 53私有托管区域中的DNS记录。Route 53 Resolver端点使这些记录在AWS和本地均可解析,这支持无需手动DNS配置的服务发现。

#### 证书生命周期操作

AWS Private Certificate Authority 作为集群的托管证书颁发机构,因此无需在每个站点运行证书颁发机构。cert-manager 和 AWS Private CA Issuer 会自动请求、续订并分发证书,这有助于避免证书过期导致的中断。

#### 安全访问 AWS 服务

集群上的工作负载通常需要调用 AWS API,例如将 Fluent Bit 日志发送到 Amazon Simple Storage Service(Amazon S3),将指标发布到 Amazon Managed Service for Prometheus,或从 Amazon Elastic Container Registry(Amazon ECR)拉取镜像。AWS IAM Roles Anywhere 通过交换工作负载已持有的证书来颁发短期有效的 AWS 凭证,因此每个站点无需存储长期有效的密钥。它仅在接受证书与可信源形成链时才接受该证书,因此编排引擎在集群启动时会将每个集群自身的 CA 证书注册为信任锚点。

#### 持久化存储集成

可以集成 Portworx 等外部存储解决方案以支持有状态应用。DynamoDB Streams 在节点部署和清理操作期间触发与存储提供商 API 的自动化交互,并执行存储资源的配置和回收。

这种事件驱动的方法使依赖的基础设施组件能够与集群和硬件的实际状态保持同步,从而减少运维负担并最小化配置漂移。

结论

本文探讨了基于 AWS 技术和 EKS Anywhere 的混合云编排解决方案的架构和能力,该方案通过现代化的 AWS 技术实现了本地基础设施管理。我们展示了如何构建一个可扩展的、事件驱动的编排引擎,以在数百个站点上管理分布式基础设施,同时保持运维一致性。

后续步骤

在本系列文章中,我们重点介绍了实现企业级混合云编排的架构模式和能力。要立即开始,可以查阅 Amazon EKS Anywhere 文档并设置裸金属集群,或使用 Docker 提供程序进行开发和测试。在第二部分中,我们将逐步演示如何通过基础设施即代码模板、Step Functions 工作流定义和可适配您环境的运维手册来实现编排解决方案。请关注 AWS Containers 博客获取后续内容。

作者简介

'"` /think