全部產品
Search
文件中心

Container Compute Service:事件驅動伸縮(KEDA)

更新時間:Jul 19, 2025

Container Compute Service (ACS)提供了ack-keda來提供事件驅動彈效能力,適用於音視頻離線轉碼、事件驅動作業、流式資料處理等情境。本文介紹事件驅動彈性的概念和原理。

事件驅動彈性概述

Kubernetes中,容器水平伸縮器HPA(Horizontal Pod Autoscaler)是最常執行的 App彈性方案。容器水平伸縮的核心是基於資源使用率與預設的閾值水位之間的關係,來確認伸縮的計劃。容器水平伸縮的方式具有使用簡單、資源指標豐富等特點,但是它對於需要即時彈性的情境,尤其是對基於事件來源進行離線作業支撐不足。

事件驅動彈性的原理

ACS通過增強版本的ack-keda來提供事件驅動彈效能力,下圖是ack-keda的基本原理。原理

ack-keda會從事件來源中進行資料的周期性消費。當訊息出現堆積,即可秒級觸發一個批次的離線任務伸縮。下一個周期到來時,會非同步進行下一個批次的作業伸縮。ack-keda具有以下特性:

  • 豐富的事件來源支援

    ack-keda支援例如Kafka、MySQL、PostgreSQL、RabbitMQ、MongoDB等資料來源

  • 離線任務的並發控制

    對於大規模的離線作業而言,底層管控的穩定性會面臨比較大的挑戰,需要提供資源、額度、API請求的整體控制。ack-keda提供了單批次、總批次的任務並發控制,保障系統的穩定性。

  • 結束任務後自動清理中繼資料

    大規模離線作業執行完畢後,會留存大量的中繼資料資訊。中繼資料資訊的堆積會造成API Server的穩定性下降,造成叢集的效能下降、穩定性不足,甚至可能影響其他的業務。ack-keda會在任務執行結束後自動清理中繼資料,降低中繼資料的量級。