跳至主要内容

AWS 解决方案库

  • AWS 解决方案库
  • 在 Amazon EKS 上使用 KEDA 进行事件驱动型应用程序自动扩展的指南

在 Amazon EKS 上使用 KEDA 进行事件驱动型应用程序自动扩展的指南

将 KEDA 与 Kubernetes 集群集成以实现事件驱动型可扩展性

概览

重要:本指南要求使用 AWS Cloud9,新客户不再可用。AWS Cloud9 的现有客户可以继续照常使用和部署本指南。

本指南演示了如何使用 Kubernetes Event-Driven Autoscaler(KEDA)为 Amazon Elastic Kubernetes Service(Amazon EKS)应用程序实施事件驱动型自动扩展。本指南展示了如何根据自定义指标,而不仅仅是 CPU 和内存利用率来扩展部署。KEDA 与 Kubernetes 集成,为事件驱动型工作负载扩展了自动扩展功能。通过本指南,您可以使用 KEDA 基于自定义指标的自动扩展功能,在 Amazon EKS 上优化资源预置,提高成本效率,并增强事件驱动型应用程序的客户体验。

工作原理

EKS 集群

此架构图显示了如何在 Amazon EKS 集群上部署 KEDA。如需查看 KEDA 概览,请打开下一个选项卡。
Architecture diagram illustrating an event-driven application autoscaling solution on Amazon EKS using KEDA. The diagram includes AWS services such as AWS Cloud9, IAM, Amazon Managed Grafana, Amazon Managed Service for Prometheus, Amazon SQS, AWS Distro for OpenTelemetry, and EKS Managed Node Group across multiple Availability Zones, with visualization of tools like helm and kubectl.

KEDA 概览

此架构图展示了 KEDA、Kubernetes Horizontal Pod Autoscaler(HPA)和外部事件源如何协同工作的概览。如需了解 KEDA 缩放容器组(pod),请打开下一个选项卡。

Architecture diagram showing event-driven application autoscaling using KEDA with Amazon EKS. The diagram illustrates the workflow with components such as the scaled object, K8s API server, KEDA (including metrics adapter, controller, scaler, admission webhooks), the HPA (Horizontal Pod Autoscaler), workload pods, and external event sources.

使用 KEDA 进行扩展

此架构图展示了 KEDA 根据自定义指标来源扩展部署容器组(pod)。如需了解 EKS 集群,打开第一个选项卡。

Architecture diagram illustrating event-driven autoscaling using KEDA with Amazon EKS. The diagram shows how Amazon SQS, KEDA operator, Horizontal Pod Autoscaling, cluster autoscaling, AWS Distro for OpenTelemetry, Amazon Managed Service for Prometheus, and Amazon Managed Grafana interact to manage and monitor pod scaling and capacity based on custom metrics and message queue events.

自信地进行部署

在账户中启动此指南所需的一切已准备就绪

我们将引导你完成

深入阅读实施指南,了解其他自定义选项和服务配置,以根据您的特定需求量身定制配置。

开放式指南

让我们来实现它

为部署做好准备了吗? 查看 GitHub 上的示例代码,了解详细的部署说明,以根据需要按原样部署或进行自定义部署。 

访问示例代码

Well-Architected 支柱

上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。

这种事件驱动型架构可用于定义精确的扩展规则,对应用程序如何响应特定事件或指标进行精细控制。通过使用 KEDA,可提高 Kubernetes 环境的效率、资源利用率和响应能力,从而推动卓越运营。

阅读卓越运营白皮书

使用 IAM 角色获取临时凭证,以便访问各种 AWS 服务。为基于 Kubernetes 的应用程序集成原生身份验证和授权机制,以安全地与 Kubernetes API 服务器交互。通过精确定义 IAM 策略,授予最低的必要权限,可以有效减少未经授权的访问,加强环境的安全性。

阅读安全白皮书

在 Kubernetes 中使用容器组(pod)拓扑分布限制可以帮助您提高应用程序的可用性和弹性。此功能可控制容器组(pod)在不同故障域(例如主机或可用区)之间的分布。通过确保均衡、最佳的分布,可以最大限度地减少单个域内潜在故障的影响,从而增强应用程序的整体完整性。

阅读可靠性白皮书

Amazon EKS 集群的多可用区设置可实现低延迟性能。虽然可能会出现跨可用区的子网间流量,但预计由此产生的延迟对应用程序性能的影响极小。在需要更低延迟的情况下,您可以在单个可用区内引导流量,进一步优化网络性能。

阅读性能效率白皮书

KEDA 的自动容器组(pod)扩展功能有助于节省成本。通过根据自定义指标来启动扩展,您可以实现容器组(pod)最佳可用性,以满足应用程序的需求,避免过度配置和不必要的成本。

阅读成本优化白皮书

您可以通过 Kubernetes HPA 实现可持续的资源管理。KEDA 可利用此功能,根据自定义指标有效扩展工作负载,从而只运行所需的容器组(pod)。通过访问 60 多种不同的扩展器,您可以根据自己的特定需求定制扩展行为,最大限度地利用已部署的资源,防止过度分配。

阅读可持续发展白皮书

免责声明

示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。

找到今天要查找的内容了吗?

请提供您的意见,以便我们改进网页内容的质量。