使用 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 的中斷性變更/淘汰原則,請閱讀其官方文件。
開始之前
- 您需要訂閱 Azure。 如果您沒有 Azure 訂閱,則可以建立免費帳戶。
- 您需要安裝 Azure CLI。
- 本文假設您具有現有 Azure 資源群組。 如果您沒有現有資源群組,則可以使用
az group create
命令來予以建立。 - 請確定您已將防火牆規則設定為允許存取 Kubernetes API 伺服器。 如需詳細資訊,請參閱 Azure Kubernetes Services (AKS) 叢集的輸出網路和 FQDN 規則。
- 建立 SSH 金鑰組。
注意
如果您要使用 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
的值。
建立 SSH 金鑰組
巡覽至 Azure Cloud Shell。
使用
az sshkey create
命令來建立 SSH 金鑰組。az sshkey create --name <sshkey-name> --resource-group <resource-group-name>
使用 ARM 範本來啟用 KEDA 附加元件
部署 AKS 叢集的 ARM 範本。
選取 [編輯範本]。
在 ARM 範本中指定
workloadAutoScalerProfile
欄位來啟用 KEDA 附加元件,如下列範例所示:"workloadAutoScalerProfile": { "keda": { "enabled": true } }
選取 [儲存]。
更新 ARM 樣本的必要值:
- 訂用帳戶:選取要用於部署的 Azure 訂用帳戶。
- 資源群組:選取要用於部署的資源群組。
- 區域:選取要用於部署的區域。
- DNS 前置詞:輸入要用於叢集的唯一 DNS 名稱。
- Linux 系統管理員使用者名稱:輸入叢集的使用者名稱。
- SSH 公開金鑰來源:選取 [使用儲存在 Azure 中的現有金鑰]。
- 存放區金鑰:選取您稍早在文章中所建立的金鑰組。
選取 [檢閱 + 建立]>[建立]。
連線至您的 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 文件。