自動スケーリングは、ビジネス要件に合わせてコンピューティングリソースを動的にスケーリングできる機能です。自動スケーリングは、リソースを管理するためのより費用対効果の高い方法を提供します。このトピックでは、自動スケーリングと関連コンポーネントについて紹介します。
背景情報
自動スケーリングは Kubernetes で広く使用されています。通常、オンラインワークロードのスケーリングや定期的なワークロードのスケジューリングなどのシナリオで使用されます。Container Compute Service (ACS) は、Horizontal Pod Autoscaler (HPA)、Cron Horizontal Pod Autoscaler (CronHPA)、Advanced Horizontal Pod Autoscaler (AHPA)、Kubernetes Event-driven Autoscaling (KEDA)、および Automatic Vertical Pod Autoscaler (AVPA) をサポートしています。ワークロードを監視したり、スケジュールを設定したりすることで、アプリケーションのレプリカ数やリソース仕様を動的に調整し、効率的なリソース使用量とサービスの安定性を確保します。
自動スケーリングコンポーネント
コンポーネント | 説明 | ユースケース | 制限 | 参照 |
HPA | Kubernetes の組み込みコンポーネント。HPA はオンラインアプリケーションに使用されます。 | オンラインビジネス | CronHPA を使用して、Deployments や StatefulSets など、スケール操作をサポートするワークロードをスケーリングできます。 | |
CronHPA | オープンソースコンポーネント。CronHPA は、リソース使用率が定期的に変化するアプリケーションに適用できます。 | 定期的に変化するワークロード | CronHPA は、Deployments と StatefulSets を使用してワークロードをスケーリングします。CronHPA は HPA と互換性があります。CronHPA と HPA を組み合わせてワークロードをスケーリングできます。 | |
AHPA | 定期的に変動するワークロード向けのオープンソースコンポーネント。例:ライブストリーミング、オンライン教育、ゲームサービス。 | 定期的に変動するワークロード | CronHPA を使用して、Deployments や StatefulSets など、スケール操作をサポートするワークロードをスケーリングできます。さらに、AHPA は予測スケーリングを実行するために少なくとも 7 日間の履歴データが必要です。 | |
KEDA | オフラインの音声およびビデオのトランスコーディング、イベント駆動型のジョブ、ストリームデータ処理などのシナリオに適したオープンソースコンポーネントです。 | イベント駆動型ワークロード | KEDA を使用して、Deployments や StatefulSets などのスケール操作をサポートするワークロードをスケーリングできます。 | |
AVPA | 主に、ゲームサービスやオフラインジョブなどの水平スケーリングに適していないステートフルなワークロードやジョブ、および不適切な仕様設定による動的な調整が必要なビジネス向けのマーケットプレイスコンポーネントです。 | アプリケーションの起動の高速化 短期的な負荷変動ワークロード | AVPA はすべてのワークロードに適用できます。AVPA は 10 分以上続く短期的な負荷変動に適しており、現在は CPU リソースの調整のみをサポートしています。AVPA は、秒単位の負荷バーストの変更やメモリリソースの調整には適していません。 |