分享方式:


使用 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 的中斷性變更/淘汰原則,請閱讀其官方文件

開始之前

注意

如果您要使用 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 的值。

使用 Azure CLI 安裝 KEDA 附加元件

若要安裝 KEDA 附加元件,請在建立或更新叢集時使用 --enable-keda

啟用 AKS 叢集上的 KEDA 附加元件

注意

雖然 KEDA 提供各種自訂選項,但 KEDA 附加元件目前提供基本的一般組態。

如果您需要自訂組態,您可以手動編輯 KEDA YAML 檔案來自訂安裝。 Azure 不提供自訂組態的支援

建立啟用 KEDA 附加元件的新 AKS 叢集

  1. 使用 az group create 命令建立資源群組。

    az group create --name myResourceGroup --location eastus
    
  2. 使用 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 文件