Kubernetes Event-Driven Autoscaler (KEDA)
始める前に
このセクションの環境を準備してください:
~$prepare-environment autoscaling/workloads/keda
これにより、ラボ環境に以下の変更が適用されます:
- AWS Load Balancer Controllerに必要なIAMロールを作成します
- AWS Load Balancer ControllerのHelmチャートをデプロイします
- KEDAオペレーターに必要なIAMロールを作成します
- UIワークロード用のIngressリソースを作成します
これらの変更を適用するTerraformはこちらで確認できます。
このラボでは、Kubernetes Event-Driven Autoscaler (KEDA)を使用してデプロイメント内のポッドをスケールする方法を見ていきます。前回のHorizontal Pod Autoscaler (HPA)のラボでは、HPAリソースを使用して平均CPU使用率に基づいてデプロイメント内のポッドを水平方向にスケールする方法を学びました。しかし、ワークロードによっては外部イベントやメトリクスに基づいてスケールする必要があります。KEDAは、Amazon SQSのキューの長さやCloudWatchの他のメトリクスなど、様々なイベントソースからのイベントに基づいてワークロードをスケールする機能を提供します。KEDAは60以上のスケーラーを各種メトリクスシステム、データベース、メッセージングシステムなど多様なソースに対応しています。
KEDAは、Helmチャートを使用してKubernetesクラスターにデプロイできる軽量なワークロードです。KEDAは、Horizontal Pod Autoscalerのような標準的なKubernetesコンポーネントと連携して、DeploymentやStatefulSetをスケールします。KEDAを使用すると、これらの様々なイベントソースで選択的にスケールしたいワークロードを選ぶことができます。