在GKE中使用KEDA HTTP附加组件启用基于HTTP的自动扩展

在GKE中使用KEDA HTTP附加组件启用基于HTTP的自动扩展

💡 原文英文,约900词,阅读约需4分钟。
📝

内容提要

本文介绍了在Google Kubernetes Engine上设置KEDA(Kubernetes事件驱动自动扩展器)及其HTTP附加组件的过程。作者面临集群资源限制和扩展问题,通过调整Python应用程序和使用HTTPScaledObject解决了这些问题。尽管成功触发了水平Pod自动扩展器,但KEDA的HTTP附加组件仍未正常工作。

🎯

关键要点

  • 本文介绍了在Google Kubernetes Engine上设置KEDA及其HTTP附加组件的过程。

  • 目标是根据HTTP流量扩展基于Python的石头剪子布应用程序。

  • 创建了一个包含两个节点的GKE集群以托管应用程序。

  • 使用服务器端应用安装KEDA,以避免CRD YAML过大导致的负担。

  • 部署了ScaledObject以定义基于事件源的扩展规则。

  • 发送HTTP负载时,水平Pod自动扩展器未按预期触发。

  • 发现集群CPU利用率达到90%,无法扩展节点。

  • 通过修改Python应用程序使其更轻量化,减少CPU消耗。

  • 意识到最初使用的ScaledObject不适合HTTP扩展,需要使用HTTPScaledObject。

  • 向KEDA社区寻求建议,确认应使用HTTPScaledObject进行HTTP扩展。

  • 更新了YAML配置以反映正确的HTTPScaledObject资源类型。

  • 使用负载测试工具模拟请求,成功触发了HPA扩展,但KEDA的HTTP附加组件未能正常工作。

  • 再次联系KEDA维护者,得知HTTP附加组件仍处于不稳定状态。

  • 假设应用程序过于轻量,导致处理请求过快,未能生成足够负载进行扩展。

延伸问答

如何在GKE中设置KEDA及其HTTP附加组件?

在GKE中设置KEDA及其HTTP附加组件的步骤包括创建GKE集群、安装KEDA、部署ScaledObject并配置HTTPScaledObject。

为什么KEDA的HTTP附加组件未能正常工作?

KEDA的HTTP附加组件未能正常工作可能是因为它仍处于不稳定状态,且应用程序过于轻量,未能生成足够的负载进行扩展。

如何优化Python应用程序以减少CPU消耗?

通过在Python应用程序中引入响应延迟,可以使应用程序更轻量,从而减少CPU消耗。

什么是HTTPScaledObject,它与ScaledObject有什么区别?

HTTPScaledObject是专为HTTP流量扩展设计的资源类型,而ScaledObject是通用的扩展规则定义,HTTPScaledObject更适合处理HTTP请求。

在使用KEDA时如何处理集群资源限制?

可以通过优化应用程序以减少资源消耗,或联系KEDA社区寻求建议来处理集群资源限制。

如何使用负载测试工具验证KEDA的扩展功能?

可以使用负载测试工具(如hey)模拟HTTP请求,以验证KEDA的水平Pod自动扩展功能是否正常工作。

➡️

继续阅读