第3章 Red Hat OpenShift Service on AWS のクラスター自動スケーリング


Red Hat OpenShift Service on AWS クラスターに自動スケーリングを適用するには、自動スケーリングを使用して 1 つ以上のマシンプールを設定する必要があります。クラスターオートスケーラーを使用すると、自動スケーリングが実行されるすべてのマシンプールに適用可能な、クラスター全体の自動スケーリングをさらに設定できます。

3.1. クラスターオートスケーラーについて

クラスターオートスケーラーは、現在のデプロイメントのニーズに合わせて、Red Hat OpenShift Service on AWS クラスターのサイズを調整します。これは、Kubernetes 形式の宣言引数を使用して、特定のクラウドプロバイダーのオブジェクトに依存しないインフラストラクチャー管理を提供します。クラスターオートスケーラーはクラスタースコープであり、特定の namespace には関連付けられていません。Red Hat OpenShift Service on AWS では、クラスターオートスケーラーはフルマネージドです。つまり、コントロールプレーンとともにホストされています。

クラスターオートスケーラーは、リソース不足のために現在のワーカーノードのいずれにもスケジュールできない Pod がある場合や、デプロイメントのニーズを満たすために別のノードが必要な場合に、クラスターのサイズを拡大します。クラスターオートスケーラーは、指定の制限を超えてクラスターリソースを拡大することはありません。

クラスターオートスケーラーは、自動スケーリングが設定されているマシンプールに属するノードだけを対象として、合計メモリー、CPU、GPU を計算します。自動スケーリングされていないすべてのマシンプールノードは、この集計から除外されます。たとえば、3 つのマシンプールがあり、そのうち 1 つのマシンプールが自動スケーリングされていない Red Hat OpenShift Service on AWS クラスターで maxNodesTotal50 に設定した場合、クラスターオートスケーラーは、自動スケーリングされている 2 つのマシンプールのみで合計ノード数を 50 に制限します。単一の手動スケーリングマシンプールに追加のノードを含めることができ、クラスター全体のノードの合計は 50 を超える可能性があります。

自動ノード削除

クラスターオートスケーラーは 10 秒ごとにクラスター内の不要なノードをチェックし、そのノードを削除します。クラスターオートスケーラーは、次の条件が当てはまる場合に、ノードを削除対象とみなします。

  • ノード使用率が、クラスターの ノード使用率 レベルのしきい値を下回っている。ノード使用率レベルとは、要求されたリソースの合計をノードに割り当てられたリソースで除算したものです。ClusterAutoscaler カスタムリソースで値が指定されいない場合、クラスターオートスケーラーはデフォルト値の 0.5 を使用します。これは 50% の使用率に相当します。
  • クラスターオートスケーラーが、ノード上で実行されているすべての Pod を他のノードに移動できる。Kubernetes スケジューラーは、ノード上の Pod のスケジュールを担当します。
  • クラスターオートスケーラーに、スケールダウンを無効にするアノテーションがない。

ノードに次のタイプの Pod が存在する場合、クラスターオートスケーラーはノードを削除しません。

  • 制限のある Pod Disruption Budget を持つ Pod。
  • デフォルトでノードで実行されない kube-system Pod。
  • PDB を持たないか、制限が厳しい PDB を持つ kube-system Pod。
  • デプロイメント、レプリカセット、またはステートフルセットなどのコントローラーオブジェクトによってサポートされない Pod。
  • ローカルストレージを持つ Pod。
  • リソース不足、互換性のないノードセレクターまたはアフィニティー、アンチアフィニティーの一致などの理由で、他の場所に移動できない Pod。
  • それらに "cluster-autoscaler.kubernetes.io/safe-to-evict": "true" アノテーションがない場合、"cluster-autoscaler.kubernetes.io/safe-to-evict": "false" アノテーションを持つ Pod。

たとえば、CPU の上限を 64 コアに設定し、それぞれ 8 コアのマシンのみを作成するようにクラスターオートスケーラーを設定したとします。クラスターが 30 コアで起動した場合、クラスターオートスケーラーはさらに最大 4 ノードを追加して 32 コアを増やし、合計 62 コアにすることができます。

制限事項

クラスターオートスケーラーを設定する場合は、使用に関する追加の制限が適用されます。

  • 自動スケーリングされたノードグループにあるノードを直接変更しないようにしてください。同じノードグループ内のすべてのノードには同じ容量およびラベルがあり、同じシステム Pod を実行します。
  • Pod の要求を指定します。
  • Pod がすぐに削除されるのを防ぐ必要がある場合、適切な PDB を設定します。
  • クラウドプロバイダーのクォータが、設定する最大のノードプールに対応できる十分な大きさであることを確認します。
  • クラウドプロバイダーで提供されるものなどの、追加のノードグループの Autoscaler を実行しないようにしてください。
注記

クラスターオートスケーラーが自動スケーリング対象のノードグループにノードを追加するのは、その追加によって Pod がスケジュール可能になる場合に限られます。利用可能なノードタイプが Pod 要求の要件を満たすことができない場合、またはその要件を満たすことができるノードグループが最大サイズに達している場合、クラスターオートスケーラーはスケールアップできません。

他のスケジュール機能との連携

Horizontal Pod Autoscaler (HPA) とクラスターオートスケーラーは、異なる方法でクラスターリソースを変更します。HPA は、現在の CPU 負荷に基づいてデプロイメント、またはレプリカセットのレプリカ数を変更します。負荷が増大すると、HPA はクラスターで利用できるリソース量に関係なく、新規レプリカを作成します。リソースが不足している場合、クラスターオートスケーラーは、HPA によって作成された Pod が実行できるようにリソースを追加します。負荷が減少する場合、HPA は一部のレプリカを停止します。この動作によってノードの使用率が低下するか、ノードが完全に空になった場合、クラスターオートスケーラーは不要なノードを削除します。

クラスターオートスケーラーは Pod の優先度を考慮します。Pod の優先度とプリエンプション機能を使用すると、クラスターに十分なリソースがない場合に優先度に基づいて Pod をスケジュールできますが、クラスターオートスケーラーにより、クラスターにすべての Pod を実行するためのリソースが確保されます。両方の機能の意図を反映するために、クラスターオートスケーラーには、優先度のカットオフ機能が搭載されています。このカットオフ機能を使用すると、"ベストエフォート" の Pod をスケジュールできます。この Pod は、クラスターオートスケーラーによるリソースの増加を引き起こすことなく、予備のリソースが利用可能な場合にのみ実行されます。

カットオフ値よりも低い優先度を持つ Pod は、クラスターのスケールアップを引き起さず、クラスターのスケールダウンを妨げることもありません。これらの Pod を実行するために新規ノードは追加されず、これらの Pod を実行しているノードはリソースを解放するために削除される可能性があります。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

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

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

会社概要

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

Theme

© 2025 Red Hat