使用 Azure CLI 安裝 Kubernetes 事件驅動自動調整 (KEDA) 附加元件
本文說明如何使用 Azure CLI 將 Kubernetes 事件驅動自動調整 (KEDA) 附加元件安裝至 Azure Kubernetes Service (AKS)。
重要
您的叢集 Kubernetes 版本會決定 AKS 叢集上將安裝的 KEDA 版本。 若要查看哪些 KEDA 版本對應至每個 AKS 版本,請參閱 Kubernetes 元件版本資料表的 [AKS 受控附加元件] 資料行。
針對 GA Kubernetes 版本,AKS 完整支援資料表中的對應 KEDA 次要版本。 客戶支援部門會盡最大地努力,局部涵蓋 Kubernetes 預覽版本和最新 KEDA 修補程式。 因此,這些功能不適合實際執行用途。 如需詳細資訊,請參閱下列支援文章:
注意
KEDA 2.15 版引進了中斷性變更,可移除 Pod 身分識別支援。 如果您使用 Pod 身分識別,建議您移至工作負載身分識別以進行驗證。 雖然 KEDA 受控附加元件目前未執行 KEDA 2.15 版,但它將會開始在 AKS 預覽 1.31 版中執行。
如需有關如何使用工作負載身分識別安全地調整應用程式的詳細資訊,請閱讀我們的教學課程。 若要檢視 KEDA 的中斷性變更/淘汰原則,請閱讀其官方文件。
開始之前
- 您需要訂閱 Azure。 如果您沒有 Azure 訂閱,則可以建立免費帳戶。
- 您需要安裝 Azure CLI。
- 請確定您已將防火牆規則設定為允許存取 Kubernetes API 伺服器。 如需詳細資訊,請參閱 Azure Kubernetes Services (AKS) 叢集的輸出網路和 FQDN 規則。
注意
如果您要使用 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
的值。
使用 Azure CLI 安裝 KEDA 附加元件
若要安裝 KEDA 附加元件,請在建立或更新叢集時使用 --enable-keda
。
啟用 AKS 叢集上的 KEDA 附加元件
注意
雖然 KEDA 提供各種自訂選項,但 KEDA 附加元件目前提供基本的一般組態。
如果您需要自訂組態,您可以手動編輯 KEDA YAML 檔案來自訂安裝。 Azure 不提供自訂組態的支援。
建立啟用 KEDA 附加元件的新 AKS 叢集
使用
az group create
命令建立資源群組。az group create --name myResourceGroup --location eastus
使用
az aks create
命令建立新的 AKS 叢集,並使用--enable-keda
旗標啟用 KEDA 附加元件。az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --enable-keda \ --generate-ssh-keys
為現有 AKS 叢集啟用 KEDA 附加元件
使用
az aks update
命令更新現有叢集,並使用--enable-keda
旗標啟用 KEDA 附加元件。az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --enable-keda
取得叢集的認證
使用
az aks get-credentials
命令取得 AKS 叢集的認證。az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
驗證叢集上已安裝 KEDA 附加元件
使用
az aks show
命,並將--query
參數設定為workloadAutoScalerProfile.keda.enabled
,驗證您的叢集已安裝 KEDA 附加元件。az aks show --resource-group myResourceGroup --name myAKSCluster --query "workloadAutoScalerProfile.keda.enabled"
下列範例輸出顯示已在叢集上安裝 KEDA 附加元件:
true
驗證 KEDA 正在您的叢集上執行
使用
kubectl get pods
命令,驗證 KEDA 附加元件正在您的叢集上執行。kubectl get pods -n kube-system
下列範例輸出顯示 KEDA 運算子、准入控制器和計量 API 伺服器已安裝在 AKS 叢集中與其狀態:
keda-admission-webhooks-**********-2n9zl 1/1 Running 0 3d18h keda-admission-webhooks-**********-69dkg 1/1 Running 0 3d18h keda-operator-*********-4hb5n 1/1 Running 0 3d18h keda-operator-*********-pckpx 1/1 Running 0 3d18h keda-operator-metrics-apiserver-**********-gqg4s 1/1 Running 0 3d18h keda-operator-metrics-apiserver-**********-trfcb 1/1 Running 0 3d18h
驗證叢集上的 KEDA 版本
若要驗證 KEDA 的版本,請使用 kubectl get crd/scaledobjects.keda.sh -o yaml
。 例如:
kubectl get crd/scaledobjects.keda.sh -o yaml
下列範例輸出顯示 app.kubernetes.io/version
標籤中的 KEDA 組態:
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.9.0
meta.helm.sh/release-name: aks-managed-keda
meta.helm.sh/release-namespace: kube-system
creationTimestamp: "2023-08-09T15:58:56Z"
generation: 1
labels:
app.kubernetes.io/component: operator
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/name: keda-operator
app.kubernetes.io/part-of: keda-operator
app.kubernetes.io/version: 2.10.1
helm.toolkit.fluxcd.io/name: keda-adapter-helmrelease
helm.toolkit.fluxcd.io/namespace: 64d3b6fd3365790001260647
name: scaledobjects.keda.sh
resourceVersion: "1421"
uid: 29109c8c-638a-4bf5-ac1b-c28ad9aa11fa
spec:
conversion:
strategy: None
group: keda.sh
names:
kind: ScaledObject
listKind: ScaledObjectList
plural: scaledobjects
shortNames:
- so
singular: scaledobject
scope: Namespaced
# Redacted due to length
停用 AKS 叢集上的 KEDA 附加元件
使用具有
--disable-keda
旗標的az aks update
命令,停用叢集上的 KEDA 附加元件。az aks update \ --resource-group myResourceGroup \ --name myAKSCluster \ --disable-keda
下一步
本文已說明如何使用 Azure CLI 在 AKS 叢集上安裝 KEDA 附加元件。
在叢集上安裝 KEDA 附加元件之後,您可以部署應用程式範例,開始縮放應用程式。
如需 KEDA 疑難排解的相關資訊,請參閱 Kubernetes 事件驅動自動調整 (KEDA) 附加元件疑難排解。
若要深入了解,請檢視上游 KEDA 文件。