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
KEDA バージョン 2.15 では、ポッド ID のサポートの削除という破壊的変更が導入されました。 Pod ID を使用している場合は、認証にワークロード ID を使用することをお勧めします。 現在、KEDA マネージド アドオンでは KEDA バージョン 2.15 を実行していませんが、AKS プレビュー バージョン 1.31 で実行を開始する予定です。
ワークロード ID を使用してアプリケーションを安全にスケーリングする方法の詳細については、チュートリアルを参照してください。 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 \ --generate-ssh-keys
既存の 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 --resource-group 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 のドキュメントを参照してください。
Azure Kubernetes Service