共用方式為


使用 ARM 範本來安裝 Kubernetes 事件驅動自動調整 (KEDA) 附加元件

本文顯示如何使用 ARM 範本,以將 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 的值。

建立 SSH 金鑰組

  1. 巡覽至 Azure Cloud Shell

  2. 使用 az sshkey create 命令來建立 SSH 金鑰組。

    az sshkey create --name <sshkey-name> --resource-group <resource-group-name>
    

使用 ARM 範本來啟用 KEDA 附加元件

  1. 部署 AKS 叢集的 ARM 範本

  2. 選取 [編輯範本]

  3. 在 ARM 範本中指定 workloadAutoScalerProfile 欄位來啟用 KEDA 附加元件,如下列範例所示:

        "workloadAutoScalerProfile": {
            "keda": {
                "enabled": true
            }
        }
    
  4. 選取 [儲存]。

  5. 更新 ARM 樣本的必要值:

    • 訂用帳戶:選取要用於部署的 Azure 訂用帳戶。
    • 資源群組:選取要用於部署的資源群組。
    • 區域:選取要用於部署的區域。
    • DNS 前置詞:輸入要用於叢集的唯一 DNS 名稱。
    • Linux 系統管理員使用者名稱:輸入叢集的使用者名稱。
    • SSH 公開金鑰來源:選取 [使用儲存在 Azure 中的現有金鑰]
    • 存放區金鑰:選取您稍早在文章中所建立的金鑰組。
  6. 選取 [檢閱 + 建立]>[建立]

連線至您的 AKS 叢集

若要從本機裝置連線至 Kubernetes 叢集,請使用 kubectl (Kubernetes 命令列用戶端)。

如果您使用 Azure Cloud Shell,則 kubectl 已安裝。 您也可以使用 az aks install-cli 命令以將其安裝在本機。

  • 使用 az aks get-credentials 命令,來設定 kubectl 以連線至 Kubernetes 叢集。 下列範例會針對 myResourceGroup 中名為 myAKSCluster 的 AKS 叢集取得認證:
az aks get-credentials --resource-group MyResourceGroup --name MyAKSCluster

範例部署

下列程式碼片段是一個範例部署,可使用由三個 DS2_v5 節點組成的單一節點集區來建立已啟用 KEDA 的叢集。

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "resources": [
        {
            "apiVersion": "2023-03-01",
            "dependsOn": [],
            "type": "Microsoft.ContainerService/managedClusters",
            "location": "westcentralus",
            "name": "myAKSCluster",
            "properties": {
                "kubernetesVersion": "1.27",
                "enableRBAC": true,
                "dnsPrefix": "myAKSCluster",
                "agentPoolProfiles": [
                    {
                        "name": "agentpool",
                        "osDiskSizeGB": 200,
                        "count": 3,
                        "enableAutoScaling": false,
                        "vmSize": "Standard_D2S_v5",
                        "osType": "Linux",
                        "type": "VirtualMachineScaleSets",
                        "mode": "System",
                        "maxPods": 110,
                        "availabilityZones": [],
                        "nodeTaints": [],
                        "enableNodePublicIP": false
                    }
                ],
                "networkProfile": {
                    "loadBalancerSku": "standard",
                    "networkPlugin": "kubenet"
                },
                "workloadAutoScalerProfile": {
                    "keda": {
                        "enabled": true
                    }
                }
            },
            "identity": {
                "type": "SystemAssigned"
            }
        }
    ]
}

使用 KEDA 開始縮放應用程式

您可以使用自訂資源定義 (CRD),以使用 KEDA 來自動調整應用程式。 如需詳細資訊,請參閱 KEDA 文件

移除資源

  • 使用 az group delete 命令,以移除資源群組和所有相關資源。

    az group delete --name <resource-group-name>
    

下一步

本文已說明如何在 AKS 叢集上安裝 KEDA 附加元件,然後確認是否已安裝並執行。 在叢集上安裝 KEDA 附加元件之後,您可以部署應用程式範例,開始縮放應用程式。

如需 KEDA 疑難排解的相關資訊,請參閱 Kubernetes 事件驅動自動調整 (KEDA) 附加元件疑難排解

若要深入了解,請檢視上游 KEDA 文件