使用 Kubernetes Event-driven Autoscaling (KEDA) 附加元件簡化應用程式自動調整
Kubernetes Event-driven Autoscaling (KEDA) 是一種單一用途的輕量型元件,致力於讓應用程式自動調整變得簡單,是一個 CNCF 升級專案。
這會套用事件驅動的自動調整,在最低限度內,以永續且符合成本效益的方式調整應用程式以符合需求。
KEDA 附加元件藉由部署受控 KEDA 安裝、為您提供 Azure KEDA 調整程式的豐富型錄,讓您可以在 Azure Kubernetes Services (AKS) 叢集上更輕鬆地調整應用程式。
注意
KEDA 2.15 版引進了中斷性變更,可移除 Pod 身分識別支援。 如果您使用 Pod 身分識別,建議您移至工作負載身分識別以進行驗證。 雖然 KEDA 受控附加元件目前未執行 KEDA 2.15 版,但它將會開始在 AKS 預覽 1.32 版中執行。
如需有關如何使用工作負載身分識別安全地調整應用程式的詳細資訊,請閱讀我們的教學課程。 若要檢視 KEDA 的中斷性變更/淘汰原則,請閱讀其官方文件。
架構
KEDA 提供兩個主要元件:
- KEDA 運算子可讓使用者縮減/擴增工作負載,範圍從 0 到 N 個執行個體,並支援 Kubernetes 部署、作業、StatefulSet 或任何定義
/scale
子資源的自訂資源。 - 計量伺服器會向 Kubernetes 中的 Horizontal Pod Autoscaler (HPA) 公開外部計量,以便進行自動調整,例如 Kafka 主題中的訊息,或 Azure 事件中樞中的事件數目。 由於上游限制,KEDA 必須是唯一安裝的外部計量配接器。
在官方 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,才能插入適當的環境變數:
執行
kubectl rollout restart deployment keda-operator -n kube-system
來重新啟動 Pod。使用
kubectl get pod -n kube-system
來取得 KEDA 運算子 Pod,並尋找開頭為keda-operator
的 Pod。執行
kubectl describe pod <keda-operator-pod> -n kube-system
,以確認成功插入環境變數。 在Environment
下方,您應該會看到AZURE_TENANT_ID
、AZURE_FEDERATED_TOKEN_FILE
和AZURE_AUTHORITY_HOST
的值。
支援的 Kubernetes 和 KEDA 版本
您的叢集 Kubernetes 版本會決定 AKS 叢集上將安裝的 KEDA 版本。 若要查看哪些 KEDA 版本對應至每個 AKS 版本,請參閱 Kubernetes 元件版本資料表的 [AKS 受控附加元件] 資料行。
針對 GA Kubernetes 版本,AKS 完整支援資料表中的對應 KEDA 次要版本。 客戶支援部門會盡最大地努力,局部涵蓋 Kubernetes 預覽版本和最新 KEDA 修補程式。 因此,這些功能不適合實際執行用途。 如需詳細資訊,請參閱下列支援文章: