すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:自動スケーリングの概要

最終更新日:Dec 12, 2024

自動スケーリングは、ビジネス要件を満たすためにコンピューティングリソースを動的にスケーリングできる機能です。 自動スケーリングは、リソースを管理するためのより費用効果の高い方法を提供します。 このトピックでは、自動スケーリングと関連コンポーネントについて説明します。

背景情報

オートスケーリングは、Container Service for Kubernetes (ACK) クラスターで広く使用されています。 通常、オートスケーリングは、オンラインのワークロードスケーリング、大規模なコンピューティングとトレーニング、GPU高速化された深層学習、共有GPUリソースに基づく推論とトレーニング、定期的なワークロードスケジューリングなどのシナリオで使用されます。 自動スケーリングは、次の側面から弾力性を可能にします。

  • Workload scaling (scheduling layer elasticity): ワークロードをスケールしてリソーススケジューリングを調整します。 例えば、水平ポッドオートスケーラ (HPA) は、スケジューリング層で動作する。 アプリケーションポッドの数を調整して、現在のワークロードによって占有されるリソースの量をさらに調整できます。

  • Node scaling (resource layer elasticity): クラスタ容量がクラスタスケジューリングのニーズを満たすことができない場合にノードをスケールアウトします。

ワークロードスケーリングとノードスケーリングのコンポーネントは、別々に、または組み合わせて使用できます。 コンポーネントを分離する場合は、クラスターのリソース制限内でワークロードをスケーリングする必要があります。

ACKクラスターのスケーリングコンポーネント

弹性伸缩ワークロードスケーリングコンポーネント

コンポーネント

説明

使用シナリオ

制限事項

関連ドキュメント

HPA

Kubernetesの組み込みコンポーネント。 HPAはオンラインアプリケーションに使用されます。

オンラインビジネス

HPAはDeploymentsとStatefulSetsを使用してワークロードをスケーリングします。

水平ポッド自動スケーリングの実装

VPA (アルファ)

オープンソースのコンポーネント。 垂直ポッドオートスケーラー (VPA) は、モノリシックアプリケーションに使用されます。

モノリシック用途

VPAは、水平方向にスケーリングできないアプリケーションに使用されます。 通常、VPAは、ポッドが異常から回復するときに使用されます。

垂直ポッドAutoscalerの使用

CronHPA

ACKによって提供されるオープンソースコンポーネント。 CronHPAは、リソース使用量が定期的に変化するアプリケーションに使用されます。

定期的に変化するワークロード

CronHPAはDeploymentsとStatefulSetsを使用してワークロードをスケーリングします。 CronHPAはHPAと互換性があります。 CronHPAとHPAを組み合わせて使用して、ワークロードをスケーリングできます。

CronHPAの実装

UnitedDeployment

ACKによって提供されるコンポーネント。 Elastic-Workloadは、きめ細かいスケーリングが必要なシナリオで使用されます。 たとえば、異なるゾーンにワークロードを分散する場合は、Elastic-Workloadを使用できます。

きめ細かいスケーリングが必要なシナリオ

Elastic-Workloadは、きめ細かいスケーリングが必要なオンラインワークロードに適用できます。 たとえば、elastic Compute Service (ECS) インスタンスが不足している場合に、エラスティックコンテナインスタンスにデプロイのポッドをデプロイできます。

ACKクラスターでのUnitedDeploymentコントローラーの使用

ノードスケーリングコンポーネント

コンポーネント

説明

使用シナリオ

リソース配信効率

関連ドキュメント

cluster-autoscaler

cluster-autoscalerは、クラスター内のノードをスケールするためにKubernetesが提供するオープンソースコンポーネントです。 cluster-autoscalerは自動スケーリングと統合され、より柔軟で費用対効果の高いスケーリングサービスを提供します。

オンラインワークロード、深層学習タスク、および大規模コンピューティングタスクに適用できます。

100ノードをクラスターに追加するのに必要な時間:

  • 標準モード: 120秒。

  • 速いモード: 60秒。

  • クイックブート (Qboot) をサポートするイメージを含む標準モード: 90秒。

  • Qbootをサポートする画像を含むスイフトモード: 45秒。

    Qbootをサポートするイメージの詳細については、「概要」をご参照ください。

ノードの自動スケーリングの有効化

ACK仮想ノード

これは、ACKによって提供されるオープンソースコンポーネントです。 サーバーレスアプリケーションのランタイムを提供します。 開発者はノードリソースを処理する必要はなく、実際の使用状況に基づいてポッドを作成、管理、および支払いするだけで済みます。

トラフィックの急増、継続的な統合と継続的な配信 (CD/CD) 、およびビッグデータコンピューティングを処理するために使用されます。

クラスターに1,000ポッドを作成するのに必要な時間:

  • イメージキャッシュが無効になっている場合: 30秒。

  • イメージキャッシュが有効になっている場合: 15秒。

GOATScaler

GOATScaler (インスタントスケーリング) は、イベント駆動型ノードオートスケーラーです。 自動スケーリングが有効になっているノードプールのセマンティクスと動作と互換性があります。

すべてのタイプのアプリケーションをサポートし、シームレスに有効にできます。

100ノードをクラスターに追加するのに必要な時間:

  • ContainerOS: 45秒

  • 標準モード: 103秒

  • 速いモード: N/A

ノードのインスタントスケーリングの有効化

自動スケーリングアクティビティのログ

自動スケーリングアクティビティのログを収集する方法の詳細については、「システムコンポーネントのログファイルの収集」をご参照ください。