自動スケーリングは、ビジネス要件を満たすためにコンピューティングリソースを動的にスケーリングできる機能です。 自動スケーリングは、リソースを管理するためのより費用効果の高い方法を提供します。 このトピックでは、自動スケーリングと関連コンポーネントについて説明します。
背景情報
オートスケーリングは、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は、ポッドが異常から回復するときに使用されます。 | |
CronHPA | ACKによって提供されるオープンソースコンポーネント。 CronHPAは、リソース使用量が定期的に変化するアプリケーションに使用されます。 | 定期的に変化するワークロード | CronHPAはDeploymentsとStatefulSetsを使用してワークロードをスケーリングします。 CronHPAはHPAと互換性があります。 CronHPAとHPAを組み合わせて使用して、ワークロードをスケーリングできます。 | |
UnitedDeployment | ACKによって提供されるコンポーネント。 Elastic-Workloadは、きめ細かいスケーリングが必要なシナリオで使用されます。 たとえば、異なるゾーンにワークロードを分散する場合は、Elastic-Workloadを使用できます。 | きめ細かいスケーリングが必要なシナリオ | Elastic-Workloadは、きめ細かいスケーリングが必要なオンラインワークロードに適用できます。 たとえば、elastic Compute Service (ECS) インスタンスが不足している場合に、エラスティックコンテナインスタンスにデプロイのポッドをデプロイできます。 |
ノードスケーリングコンポーネント
コンポーネント | 説明 | 使用シナリオ | リソース配信効率 | 関連ドキュメント |
cluster-autoscaler | cluster-autoscalerは、クラスター内のノードをスケールするためにKubernetesが提供するオープンソースコンポーネントです。 cluster-autoscalerは自動スケーリングと統合され、より柔軟で費用対効果の高いスケーリングサービスを提供します。 | オンラインワークロード、深層学習タスク、および大規模コンピューティングタスクに適用できます。 | 100ノードをクラスターに追加するのに必要な時間:
| |
ACK仮想ノード | これは、ACKによって提供されるオープンソースコンポーネントです。 サーバーレスアプリケーションのランタイムを提供します。 開発者はノードリソースを処理する必要はなく、実際の使用状況に基づいてポッドを作成、管理、および支払いするだけで済みます。 | トラフィックの急増、継続的な統合と継続的な配信 (CD/CD) 、およびビッグデータコンピューティングを処理するために使用されます。 | クラスターに1,000ポッドを作成するのに必要な時間:
| |
GOATScaler | GOATScaler (インスタントスケーリング) は、イベント駆動型ノードオートスケーラーです。 自動スケーリングが有効になっているノードプールのセマンティクスと動作と互換性があります。 | すべてのタイプのアプリケーションをサポートし、シームレスに有効にできます。 | 100ノードをクラスターに追加するのに必要な時間:
|
自動スケーリングアクティビティのログ
自動スケーリングアクティビティのログを収集する方法の詳細については、「システムコンポーネントのログファイルの収集」をご参照ください。