使用 Kubernetes Event-driven Autoscaling (KEDA) 附加元件簡化應用程式自動調整

Kubernetes Event-driven Autoscaling (KEDA) 是一種單一用途的輕量型元件,致力於讓應用程式自動調整變得簡單,是一個 CNCF 升級專案。

這會套用事件驅動的自動調整,在最低限度內,以永續且符合成本效益的方式調整應用程式以符合需求。

KEDA 附加元件藉由部署受控 KEDA 安裝、為您提供 Azure KEDA 調整程式的豐富型錄,讓您可以在 Azure Kubernetes Services (AKS) 叢集上更輕鬆地調整應用程式。

架構

KEDA 提供兩個主要元件:

  • KEDA 運算子可讓使用者縮減/擴增工作負載,範圍從 0 到 N 個執行個體,並支援 Kubernetes 部署、作業、StatefulSet 或任何定義 /scale 子資源的自訂資源。
  • 計量伺服器會向 Kubernetes 中的 Horizontal Pod Autoscaler (HPA) 公開外部計量,以便進行自動調整,例如 Kafka 主題中的訊息,或 Azure 事件中樞中的事件數目。 由於上游限制,KEDA 必須是唯一安裝的計量配接器。

Diagram that shows the architecture of K E D A and how it extends Kubernetes instead of re-inventing the wheel.

官方 KEDA 文件中深入瞭解 KEDA 的運作方式。

安裝

使用 ARM 範本Azure CLI 來啟用 KEDA 附加元件,即可將 KEDA 新增至 Azure Kubernetes Service (AKS) 叢集。

KEDA 附加元件支援完整安裝與 AKS 整合的 KEDA。

功能

KEDA 提供下列功能和特性:

  • 在最低限度內建置永續性且符合成本效益的應用程式
  • 使用 Azure KEDA 調整程式的豐富型錄來調整應用程式工作負載以符合需求
  • 使用 ScaledObjects 自動調整應用程式,例如 Deployments、StatefulSets 或任何定義 /scale 子資源的自訂資源
  • 使用 ScaledJobs 自動調整類似作業的工作負載
  • 將自動調整驗證與工作負載分離,以使用生產等級的安全性
  • 自備外部調整器,以使用量身打造的自動調整決策
  • Microsoft Entra 工作負載識別碼整合以進行驗證

注意

如果您打算使用工作負載身分識別,啟用 KEDA 附加元件之前,先啟用工作負載身分識別附加元件

附加元件限制

KEDA AKS 附加元件具有下列限制:

  • KEDA 可調整 HTTP 工作量的 HTTP 附加元件 (預覽版),不會隨擴充功能一起安裝 ,但可以個別部署。
  • KEDA 可根據 Azure Cosmos DB 變更摘要來調整的 Azure Cosmos DB 外部調整器,不會隨擴充功能一起安裝,但可以個別部署。
  • 在 Kubernetes 叢集中只允許一個計量伺服器。 因為 KEDA 附加元件應該是叢集內唯一的計量伺服器。
    • 不支援多個 KEDA 安裝

如需一般 KEDA 問題,建議您造訪常見問題概觀

注意

如果您要使用 Microsoft Entra 工作負載識別碼,而且您在工作負載識別碼之前啟用 KEDA,則需要重新啟動 KEDA 操作員 Pod,才能插入適當的環境變數:

  1. 執行 kubectl rollout restart deployment keda-operator -n kube-system 來重新啟動 Pod。

  2. 使用 kubectl get pod -n kube-system 來取得 KEDA 運算子 Pod,並尋找開頭為 keda-operator 的 Pod。

  3. 執行 kubectl describe pod <keda-operator-pod> -n kube-system,以確認成功插入環境變數。 在 Environment 下方,您應該會看到 AZURE_TENANT_IDAZURE_FEDERATED_TOKEN_FILEAZURE_AUTHORITY_HOST 的值。

支援的 Kubernetes 和 KEDA 版本

您的叢集 Kubernetes 版本會決定 AKS 叢集上將安裝的 KEDA 版本。 若要查看哪些 KEDA 版本對應至每個 AKS 版本,請參閱 Kubernetes 元件版本資料表的 [AKS 受控附加元件] 資料行。

針對 GA Kubernetes 版本,AKS 完整支援資料表中的對應 KEDA 次要版本。 客戶支援部門會盡最大地努力,局部涵蓋 Kubernetes 預覽版本和最新 KEDA 修補程式。 因此,這些功能不適合實際執行用途。 如需詳細資訊,請參閱下列支援文章:

下一步