Kubernetes 事件驅動自動調整 (KEDA) 是單一用途且輕量型的元件,致力於讓應用程式自動調整變得簡單,而且是雲端原生運算同盟 (NCF) 研究生專案。
這會套用事件驅動的自動調整,在最低限度內,以永續且符合成本效益的方式調整應用程式以符合需求。
KEDA 附加元件藉由部署受控 KEDA 安裝、為您提供 Azure KEDA 調整程式的豐富型錄,讓您可以在 Azure Kubernetes Services (AKS) 叢集上更輕鬆地調整應用程式。
注意
KEDA 2.15 版及以上引進了中斷性變更,移除 Pod 身分識別支援。 如果您使用 Pod 身分識別,建議您移至工作負載身分識別以進行驗證。 雖然 KEDA 受控附加元件目前未執行 KEDA 2.15 版+,但它將會開始在 AKS 預覽 1.32 版中執行。
如需有關如何使用工作負載身分識別安全地調整應用程式的詳細資訊,請參閱我們的 教學課程。 若要檢視 KEDA 的重大變更/淘汰原則,請閱讀其 官方檔。
架構
KEDA 提供兩個主要元件:
-
KEDA 運算符 可讓使用者在支援 Kubernetes Deployments、Jobs
StatefulSets或任何定義/scale子資源的自定義資源的情況下,將工作負載從 0 調整為 N 個實例。 - 計量伺服器會向 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自動調整應用程式,例如部署、StatefulSets,或任何定義/scale子資源的自定義資源。 - 使用
ScaledJobs自動調整類似作業的工作負載 - 將自動調整驗證與工作負載分離,以使用生產等級的安全性
- 自備外部調整器,以使用量身打造的自動調整決策
- 與 Microsoft Entra 工作負載識別碼整合以進行驗證
注意
如果您打算使用工作負載身分識別,啟用 KEDA 附加元件之前,先啟用工作負載身分識別附加元件。
附加元件限制
KEDA AKS 附加元件具有下列限制:
- KEDA 可調整 HTTP 工作量的 HTTP 附加元件 (預覽版),不會隨擴充功能一起安裝 ,但可以個別部署。
- KEDA 可根據 Azure Cosmos DB 變更摘要來調整的 Azure Cosmos DB 外部調整器,不會隨擴充功能一起安裝,但可以個別部署。
- Kubernetes 叢集中只允許一個外部計量伺服器。 因此,KEDA 附加元件應該是叢集內唯一的外部計量伺服器。
- 不支援多個 KEDA 安裝
- 不建議將 KEDA 與
ScaledObject水平 Pod 自動調整器(HPA)結合,以調整相同的工作負載。 它們相互競爭,是因為 KEDA 在背景中使用水平 Pod 自動調整程式(HPA),導致不尋常的縮放行為。- 如果先建立 HPA,然後建立 KEDA
ScaledObject的話,則 KEDAScaledObject將無法建立。 - 如果先建立 KEDA
ScaledObject,再建立 HPA,那麼 HPA 的建立不會被阻止。
- 如果先建立 HPA,然後建立 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 修補程式。 因此,這些功能不適合實際執行用途。 如需詳細資訊,請參閱下列支援文章: