次の方法で共有


Kubernetes Event-driven Autoscaling (KEDA) アドオンを使用したアプリケーションの自動スケーリングの簡略化

Von Bedeutung

AKS の KEDA アドオンでは現在、 メトリック サーバー または オペレーターの CPU 要求または制限およびその他の Helm 値の変更はサポートされていません。 アドオンを使用する場合は、この制限に注意してください。 ご質問がある場合は、こちらでお気軽にお問い合せ 下さい

Kubernetes Event-driven Autoscaling (KEDA) は、アプリケーションの自動スケールをシンプルにすることを目指す単一目的の軽量コンポーネントであり、クラウド ネイティブ コンピューティング フェデレーション (CNCF) 大学院プロジェクトです。

イベント駆動型自動スケーリングを適用して、scale-to-zero で持続可能でコスト効率の高い方法で需要を満たすようにアプリケーションをスケーリングします。

KEDA アドオンを使用すると、マネージド KEDA インストールをデプロイすることで、それがさらに簡単になります。Azure Kubernetes Services (AKS) クラスターでアプリケーションをスケーリングできる Azure KEDA スケーラーの豊富なカタログが提供されます。

KEDA バージョン 2.15 以降では、 ポッド ID のサポートを削除する破壊的変更が導入されています。 Pod ID を使用している場合は、認証にワークロード ID を使用することをお勧めします。 KEDA マネージド アドオンは現在、KEDA バージョン 2.15 以降を実行していませんが、AKS プレビュー バージョン 1.32 で実行を開始します。

ワークロード ID を使用してアプリケーションを安全にスケーリングする方法の詳細については、 チュートリアルを参照してください。 KEDAの破壊的変更や非推奨ポリシーを確認するには、公式ドキュメントをご覧ください。

アーキテクチャ

KEDA には、次の 2 つの主要コンポーネントが用意されています。

  • KEDA オペレーター を使用すると、エンドユーザーは、Kubernetes デプロイ、ジョブ、StatefulSets、またはサブリソースを定義する任意のカスタム リソースを使用して、ワークロードを 0 から N インスタンスまでスケールインまたはスケールアウトできます。
  • メトリック サーバーによって、Kafka トピック内のメッセージや Azure イベント ハブ内のイベント数などの自動スケーリングを行う目的で、外部メトリックが Kubernetes の Horizontal Pod Autoscaler (HPA) に公開されます。 アップストリームの制限により、KEDA がインストールされている唯一の外部メトリック アダプターである必要があります。

KEDA のアーキテクチャと Kubernetes の拡張方法を示す図。

KEDA のしくみの詳細については、 KEDA の公式ドキュメントを参照してください。

インストール

KEDA は、ARM テンプレート または Azure CLI を使用して KEDA アドオンを有効にすることで、Azure Kubernetes Service (AKS) クラスターに追加できます。

KEDA アドオンにより、AKS と統合された KEDA の完全にサポートされたインストールが可能になります。

機能と特徴

KEDA には、次の機能があります:

  • scale-to-zero で持続可能でコスト効率の高いアプリケーションを構築する
  • Azure KEDA スケーラーの豊富なカタログを使用して、需要に合わせてアプリケーション ワークロードをスケーリングする
  • ScaledObjects を使用して、デプロイ、StatefulSets、または /scale サブリソースを定義するカスタムリソースなどのアプリケーションを自動的にスケールする
  • ジョブに似たワークロードを ScaledJobs で自動スケーリング
  • ワークロードから自動スケール認証を切り離して運用グレードのセキュリティを使用する
  • 独自の外部スケーラーを使用して、カスタマイズされた自動スケーリングの決定を使用する
  • 認証のために Microsoft Entra Workload ID と統合する

ワークロード ID を使用する予定の場合、KEDA アドオンを有効にする前に、ワークロード ID アドオンを有効にします

アドオンの制限事項

KEDA AKS アドオンには次の制限があります:

  • HTTP ワークロードをスケーリングする KEDA の HTTP アドオン (プレビュー) は拡張機能と共にインストールされませんが、個別にデプロイできます。
  • Azure Cosmos DB 変更フィードに基づいてスケーリングする Azure Cosmos DB 用 KEDA の外部スケーラーは、拡張機能と共にインストールされていませんが、個別にデプロイできます。
  • Kubernetes クラスターで許可される外部メトリック サーバーは 1 つだけです。 したがって、KEDA アドオンがクラスター内の唯一の外部メトリック サーバーとなります。
    • 複数の KEDA インストールはサポートされていません
  • KEDA の ScaledObject と水平ポッド オートスケーラー (HPA) を組み合わせて同じワークロードをスケーリングすることはお勧めしません。 KEDA はバックグラウンドで水平ポッドオートスケーラー (HPA) を使用し、予期しないスケーリング動作が発生するため、競合が発生します。
    • HPA が最初に作成されると、KEDA ScaledObject が作成され、KEDA ScaledObject の作成に失敗します。
    • KEDA ScaledObject が最初に作成されてから HPA が作成された場合、HPA の作成はブロックされません。

KEDA に関する一般的な質問については、FAQ の概要にアクセスすることをお勧めします。

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 の値が表示されます。

サポートされている Kubernetes および KEDA のバージョン

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

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

次のステップ