2.5. Vertical Pod Autoscaler を使用した Pod リソースレベルの自動調整


OpenShift Container Platform Vertical Pod Autoscaler Operator (VPA) は、Pod 内のコンテナーにおける CPU およびメモリーリソースの履歴と現在の情報を自動的に確認します。VPA は、学習した使用状況の値に基づいて、リソースの制限と要求を更新できます。個別のカスタムリソース (CR) を使用することで、VPA は組み込みのワークロードオブジェクトに関連付けられているプロジェクト内のすべての Pod を更新します。これには、次のオブジェクトタイプのリストが含まれます。

  • Deployment
  • DeploymentConfig
  • StatefulSet
  • Job
  • DaemonSet
  • ReplicaSet
  • ReplicationController

VPA は、Pod を管理する特定のカスタムリソースオブジェクトを更新することもできます。詳細は、Vertical Pod Autoscaler のカスタムリソースの例 を参照してください。

VPA は、Pod に最適な CPU およびメモリーの使用状況を理解するのに役立ち、Pod のライフサイクルを通じて Pod のリソースを自動的に維持します。

2.5.1. Vertical Pod Autoscaler Operator について

Vertical Pod Autoscaler Operator (VPA) は、API リソースおよびカスタムリソース (CR) として実装されます。CR は、プロジェクト内のデーモンセット、レプリケーションコントローラーなどの特定のワークロードオブジェクトに関連付けられた Pod に対して VPA が実行するアクションを決定します。

VPA は 3 つのコンポーネントで構成され、各コンポーネントは VPA namespace に独自の Pod を持ちます。

レコメンダー
VPA レコメンダーは、現在のリソース消費量と過去のリソース消費量を監視します。このデータに基づいて、VPA レコメンダーは、関連付けられたワークロードオブジェクト内の Pod に最適な CPU およびメモリーリソースを決定します。
アップデーター
VPA アップデーターは、関連付けられたワークロードオブジェクト内の Pod に正しいリソースがあるか確認します。リソースが正しい場合、アップデーターは何も行いません。リソースが正しくない場合、アップデーターは Pod を強制終了し、Pod のコントローラーが更新されたリクエストでリソースを再作成できるようにします。
アドミッションコントローラー
VPA アドミッションコントローラーは、関連付けられたワークロードオブジェクト内の各新しい Pod に正しいリソース要求を設定します。これは、Pod が新規であるか、または VPA アップデーターアクションによりコントローラーが Pod を再作成したかに関係なく適用されます。

デフォルトのレコメンダーを使用することも、独自の代替レコメンダーを使用して独自のアルゴリズムに基づいて自動スケーリングを実行することもできます。

デフォルトのレコメンダーは、これらの Pod 内のコンテナーの CPU とメモリーの過去および現在の使用状況を自動的に計算します。デフォルトのレコメンダーは、これらの Pod が常に効率的に動作するように、このデータを使用して最適なリソース制限および要求を決定します。たとえば、デフォルトレコメンダーは使用している量よりも多くのリソースを要求する Pod のリソースを減らし、十分なリソースを要求していない Pod のリソースを増やします。

VPA は、一度に 1 つずつ、これらの推奨値で調整されていない Pod を自動的に削除するため、アプリケーションはダウンタイムなしに継続して要求を提供できます。その後、ワークロードオブジェクトが、元のリソース制限および要求を使用して Pod を再デプロイします。VPA は変更用のアドミッション Webhook を使用して、Pod がノードに許可される前に最適化されたリソース制限および要求で Pod を更新します。VPA が Pod を削除する必要がない場合は、VPA リソース制限および要求を表示し、必要に応じて Pod を手動で更新できます。

注記

デフォルトで、ワークロードオブジェクトは、VPA が Pod を自動的に削除できるようにするためにレプリカを 2 つ以上指定する必要があります。この最小値よりも少ないレプリカを指定するワークロードオブジェクトは削除されません。これらの Pod を手動で削除すると、ワークロードオブジェクトが Pod を再デプロイするときに、VPA は推奨内容に基づいて新規 Pod を更新します。この最小値は、VPA の最小値の変更 に記載されているとおり、VerticalPodAutoscalerController オブジェクトを変更して変更できます。

たとえば、CPU の 50% を使用する Pod が 10% しか要求しない場合、VPA は Pod が要求よりも多くの CPU を消費すると判別してその Pod を削除します。レプリカセットなどのワークロードオブジェクトは Pod を再起動し、VPA は推奨リソースで新しい Pod を更新します。

開発者は VPA を使用して、各 Pod に適切なリソースを持つノードに Pod をスケジューリングすることにより、需要が高い期間に Pod がアクティブであることを確認できます。

管理者は VPA を使用して、クラスターリソースをより適切に活用できます。たとえば、必要以上の CPU リソースを Pod が予約できないようにします。VPA は、ワークロードが実際に使用しているリソースをモニターし、他のワークロードで容量を使用できるようにリソース要件を調整します。VPA は、初期のコンテナー設定で指定された制限と要求の比率も維持します。

注記

VPA の実行を停止するか、クラスターの特定の VPA CR を削除する場合、VPA によってすでに変更された Pod のリソース要求は変更されません。ただし、新しい Pod は、VPA による以前の推奨内容ではなく、ワークロードオブジェクトで定義されたリソースを取得します。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る