你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure CLI 安装 Kubernetes 事件驱动的自动缩放 (KEDA) 加载项

本文介绍如何使用 Azure CLI 将 Kubernetes 事件驱动的自动缩放 (KEDA) 加载项安装到 Azure Kubernetes 服务 (AKS)。 本文包含用于验证它是否已安装并正在运行的步骤。

重要

KEDA 加载项在群集上安装 2.7.0 版 KEDA。

重要

AKS 预览功能是可选择启用的自助功能。 预览功能是“按现状”和“按可用”提供的,不包括在服务级别协议和有限保证中。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:

先决条件

安装扩展 aks-preview

在 AKS 群集中安装 aks-preview 扩展,以确保在安装 KEDA 加载项之前拥有最新版本的 AKS 扩展。

az extension add --upgrade --name aks-preview

注册 AKS-KedaPreview 功能标志

若要使用 KEDA,必须在订阅中启用 AKS-KedaPreview 功能标志。

az feature register --name AKS-KedaPreview --namespace Microsoft.ContainerService

可使用 az feature list 命令来检查注册状态:

az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/AKS-KedaPreview')].{Name:name,State:properties.state}"

准备就绪后,使用 az provider register 命令刷新 Microsoft.ContainerService 资源提供程序的注册:

az provider register --namespace Microsoft.ContainerService

使用 Azure CLI 安装 KEDA 加载项

若要安装 KEDA 加载项,请在创建或更新群集时使用 --enable-keda

以下示例创建 myResourceGroup 资源组。 然后它将创建包含 KEDA 加载项的 myAKSCluster 群集。

az group create --name myResourceGroup --location eastus

az aks create \
  --resource-group myResourceGroup \
  --name myAKSCluster \
  --enable-keda 

对于现有群集,将 az aks update--enable-keda 选项结合使用。 以下代码展示了一个示例。

az aks update \
  --resource-group myResourceGroup \
  --name myAKSCluster \
  --enable-keda 

获取群集的凭据

使用 az aks get-credentials 命令获取 AKS 群集的凭据。 以下示例命令获取 myResourceGroup 资源组中 myAKSCluster 的凭据:

az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

验证群集上是否安装了 KEDA 加载项

若要查看是否在群集上安装了 KEDA 加载项,请验证 workloadAutoScalerProfile 下的 kedaenabled 值是否为 true

以下示例显示 myResourceGroup 中 myAKSCluster 的 KEDA 加载项状态:

az aks show -g "myResourceGroup" --name myAKSCluster --query "workloadAutoScalerProfile.keda.enabled" 

验证 KEDA 是否正在群集上运行

可以验证在群集上运行的 KEDA。 使用 kubectl 显示安装在 kube-system 命名空间下的 AKS 群集中的运算符和指标服务器。 例如:

kubectl get pods -n kube-system 

以下示例输出显示安装在 AKS 群集中的 KEDA 运算符和指标 API 服务器及其状态。

kubectl get pods -n kube-system

keda-operator-********-k5rfv                     1/1     Running   0          43m
keda-operator-metrics-apiserver-*******-sj857   1/1     Running   0          43m

要验证 KEDA 的版本,请使用 kubectl get crd/scaledobjects.keda.sh -o yaml 。 例如:

kubectl get crd/scaledobjects.keda.sh -o yaml 

以下示例输出显示 app.kubernetes.io/version 标签中 KEDA 的配置:

kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.8.0
  creationTimestamp: "2022-06-08T10:31:06Z"
  generation: 1
  labels:
    addonmanager.kubernetes.io/mode: Reconcile
    app.kubernetes.io/component: operator
    app.kubernetes.io/name: keda-operator
    app.kubernetes.io/part-of: keda-operator
    app.kubernetes.io/version: 2.7.0
  name: scaledobjects.keda.sh
  resourceVersion: "2899"
  uid: 85b8dec7-c3da-4059-8031-5954dc888a0b
spec:
  conversion:
    strategy: None
  group: keda.sh
  names:
    kind: ScaledObject
    listKind: ScaledObjectList
    plural: scaledobjects
    shortNames:
    - so
    singular: scaledobject
  scope: Namespaced
  # Redacted for simplicity

虽然 KEDA 提供了各种自定义选项,但 KEDA 加载项目前提供基本的通用配置。

如果需要使用其他自定义配置(例如应监视的命名空间或调整日志级别)运行,则可以手动编辑 KEDA YAML 并部署它。

但是,当自定义安装时,将不支持自定义配置。

禁用 AKS 群集中的 KEDA 加载项

当群集中不再需要 KEDA 加载项时,请将 az aks update 命令与 --disable-keda 选项结合使用。 此执行将禁用 KEDA 工作负载自动缩放程序。

az aks update \
  --resource-group myResourceGroup \
  --name myAKSCluster \
  --disable-keda 

后续步骤

本文介绍了如何使用 Azure CLI 在 AKS 群集上安装 KEDA 加载项。 包括用于验证 KEDA 加载项是否已安装并正常运行的步骤。 在群集上安装 KEDA 加载项后,可以部署示例应用程序以开始缩放应用。

可以排查本文中的 KEDA 加载项问题。