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 パッチは、ベストエフォート ベースでカスタマー サポートによって部分的にカバーされます。 そのため、これらの機能は、運用環境での使用を意図していません。 詳細については、次のサポート記事を参照してください。
開始する前に
- Azure サブスクリプションが必要です。 Azure サブスクリプションをお持ちでない場合は、無料のアカウントを作成できます。
- Azure CLI をインストールする必要があります。
- Kubernetes API サーバーへのアクセスを許可するファイアウォール規則を構成しておきます。 詳細については、「Azure Kubernetes Service (AKS) クラスターのアウトバウンド ネットワークと FQDN の規則」を参照してください。
Note
Microsoft Entra ワークロード ID を使用していて、ワークロード ID の前に KEDA を有効にする場合は、以下の手順に従って、適切な環境変数を挿入できるように KEDA オペレーター ポッドを再起動する必要があります。
kubectl rollout restart deployment keda-operator -n kube-system
を実行してポッドを再起動します。kubectl get pod -n kube-system
を使用して、keda-operator
で始まるポッドを見つけて、KEDA オペレーター ポッドを取得します。kubectl describe pod <keda-operator-pod> -n kube-system
を実行して、環境変数が正常に挿入されたことを確認します。Environment
の下に、AZURE_TENANT_ID
、AZURE_FEDERATED_TOKEN_FILE
、AZURE_AUTHORITY_HOST
の値が表示されます。
Azure CLI を使用して KEDA アドオンをインストールする
KEDA アドオンをインストールするには、 クラスターの作成時または更新時に --enable-keda
を使用します。
AKS クラスター上の KEDA アドオンを有効にする
Note
KEDA にはさまざまなカスタマイズ オプションが用意されていますが、KEDA アドオンには現在、基本的な一般的な構成が用意されています。
カスタム構成が必要な場合は、KEDA YAML ファイルを手動で編集してインストールをカスタマイズできます。 Azure によるカスタム構成のサポートは提供されていません。
KEDA アドオンが有効になっている新しい AKS クラスターを作成する
az group create
コマンドを使用して、リソース グループを作成します。az group create --name myResourceGroup --location eastus
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 のドキュメントを参照してください。