Azure CLI を使用して Kubernetes Event-driven Autoscaling (KEDA) アドオンをインストールする

この記事では、Azure CLI を使用して Kubernetes Event-driven Autoscaling (KEDA) アドオンを Azure Kubernetes Service (AKS) にインストールする方法について説明します。

重要

クラスター Kubernetes バージョンによって、AKS クラスターにインストールされる KEDA のバージョンが決まります。 各 AKS バージョンに対応する KEDA バージョンを確認するには、Kubernetes コンポーネント バージョン テーブルAKS マネージド アドオン列を参照してください。

GA Kubernetes バージョンの場合は、AKS はテーブル内の対応する KEDA マイナー バージョンを完全にサポートします。 Kubernetes プレビュー バージョンと最新の KEDA パッチは、ベストエフォート ベースでカスタマー サポートによって部分的にカバーされます。 そのため、これらの機能は、運用環境での使用を意図していません。 詳細については、次のサポート記事を参照してください。

開始する前に

Note

Microsoft Entra ワークロード ID を使用していて、ワークロード ID の前に KEDA を有効にする場合は、以下の手順に従って、適切な環境変数を挿入できるように KEDA オペレーター ポッドを再起動する必要があります。

  1. kubectl rollout restart deployment keda-operator -n kube-system を実行してポッドを再起動します。

  2. kubectl get pod -n kube-system を使用して、keda-operator で始まるポッドを見つけて、KEDA オペレーター ポッドを取得します。

  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 アドオンを有効にする

Note

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 
    

既存の 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 コマンドを使用して KEDA アドオンがクラスターにインストールされていることを確認し、--query パラメーターを workloadAutoScalerProfile.keda.enabled に設定します。

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

    次の出力例は、KEDA アドオンがクラスターにインストールされていることを示しています。

    true
    

クラスター上で KEDA が実行されていることを確認する

  • kubectl get pods コマンドを使用して、KEDA アドオンがクラスター上で実行されていることを確認します。

    kubectl get pods -n kube-system 
    

    次の出力例は、KEDA オペレーター、アドミッション フック、メトリック API サーバーがクラスターにインストールされていることを示しています。

    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 Event-driven Autoscaling (KEDA) アドオンのトラブルシューティングに関する記事を参照してください。

詳細については、アップストリーム KEDA のドキュメントを参照してください。