Container Compute Service (ACS) は、イベント駆動型の自動スケーリング機能を実現する ACK KEDA を提供します。この機能は、オフラインでの音声および動画のトランスコーディング、イベント駆動型のジョブ、ストリームデータ処理などのシナリオに適用されます。このトピックでは、イベント駆動型の自動スケーリングの概念と原則について説明します。
概要
Kubernetes の場合、Horizontal Pod Autoscaler (HPA) は Pod を自動的にスケーリングするための最も一般的に使用されるソリューションです。HPA は、リソース使用量と事前定義されたしきい値との差に基づいてスケーリング戦略を決定します。HPA は、さまざまなリソースメトリックをサポートする使いやすいツールです。ただし、リアルタイムスケーリングはサポートしていません。たとえば、HPA は特定のイベントが検出されたときにリソースをスケーリングすることはできません。
イベント駆動型の弾力性の仕組み
ACS は、ACK KEDA の拡張バージョンを通じてイベント駆動型の自動スケーリング機能を提供します。次の図は、ACK KEDA の基本原則を示しています。
ACK KEDA は、イベントソースから定期的にデータを消費します。保留中のメッセージが増加すると、ACK KEDA がトリガーされ、数秒以内にジョブのバッチがスケーリングされます。次の期間が開始されると、次のジョブのバッチが非同期にスケーリングされます。ACK KEDA は、次の特徴をサポートしています。
さまざまなイベントソースをサポート
ACK KEDA は、Kafka、MySQL、PostgreSQL、RabbitMQ、MongoDB などのデータソースをサポートしています。
ジョブの同時実行性を制御
多くのジョブが送信されると、システムはリソース、クォータ、および API リクエストを全体的に制御する必要があるため、基盤となる制御システムの安定性に悪影響が及びます。ACK KEDA は、1 つ以上のバッチでジョブの同時実行性を制御して、システムの安定性を確保できます。
ジョブ完了後のメタデータのクリア
多くのジョブが完了した後、大量のメタデータが保持されます。メタデータが蓄積されると、API Server の安定性が低下し、クラスターのパフォーマンスの低下、安定性の不足、および他のサービスへの潜在的な影響が生じる可能性があります。ACK KEDA は、ジョブの完了後にメタデータを自動的にクリアできます。