6.5. ノードあたりの Pod の最大数の管理


OpenShift Container Platform では、ノード上のプロセッサーコア数、ハードリミット、またはその両方に基づいて、ノード上で実行できる Pod の数を設定できます。両方のオプションを使用した場合、より低い値の方がノード上の Pod の数を制限します。Pod の最大数を設定することで、ノードがその基盤となるハードウェアが処理できる以上の Pod を実行することを防ぐことができます。

両方のオプションが使用されている場合、2 つの値の低い方の値により、ノード上の Pod 数が制限されます。これらの値を超えると、次のような状況が発生する可能性があります。

  • CPU 使用率の増大。
  • Pod のスケジューリングの速度が遅くなる。
  • (ノードのメモリー量によって) メモリー不足のシナリオが生じる可能性。
  • IP アドレスのプールを消費する。
  • リソースのオーバーコミット、およびこれによるアプリケーションのパフォーマンスの低下。
重要

Kubernetes では、単一コンテナーを保持する Pod は実際には 2 つのコンテナーを使用します。2 つ目のコンテナーは実際のコンテナーの起動前にネットワークを設定するために使用されます。そのため、10 の Pod を使用するシステムでは、実際には 20 のコンテナーが実行されていることになります。

注記

クラウドプロバイダーからのディスク IOPS スロットリングは CRI-O および kubelet に影響を与える可能性があります。ノード上に多数の I/O 集約型 Pod が実行されている場合、それらはオーバーロードする可能性があります。ノード上のディスク I/O を監視し、ワークロード用に十分なスループットを持つボリュームを使用することが推奨されます。

podsPerCore パラメーターは、ノード上のプロセッサーコア数に基づいて、ノードが実行できる Pod の数を設定します。たとえば、プロセッサーコアが 4 つあるノードで podsPerCore を10 に設定した場合、そのノードで許可される Pod の最大数は 40 に なります。

kubeletConfig:
  podsPerCore: 10

podsPerCore0 に設定すると、この制限が無効になります。デフォルトは 0 です。podsPerCore パラメーターの値は、maxPods パラメーターの値を超えることはできません。

maxPods パラメーターは、ノードのプロパティーに関係なく、ノードが実行できる Pod の数を固定値に設定します。

 kubeletConfig:
    maxPods: 250

6.5.1. ノードあたりの Pod の最大数の設定

kublet の設定では、podsPerCoremaxPods パラメーターを使用して、ノードにスケジュールできる Pod の最大数を制御できます。両方のオプションを使用した場合、より低い値の方がノード上の Pod の数を制限します。適切な最大値を設定することで、ノードが効率的に動作することを確保できます。

たとえば、podsPerCore が 4 つのプロセッサーコアを持つノード上で、10 に設定されていると、ノード上で許容される Pod の最大数は 40 になります。

前提条件

  • 設定したいノードの種類に対応するラベルが、静的 MachineConfigPool CRD に関連付けられています。

手順

  1. 設定変更のためのカスタムリソース (CR) を作成します。

    max-pods CR の設定例

    apiVersion: machineconfiguration.openshift.io/v1
    kind: KubeletConfig
    metadata:
      name: set-max-pods
    spec:
      machineConfigPoolSelector:
        matchLabels:
          pools.operator.machineconfiguration.openshift.io/worker: ""
      kubeletConfig:
        podsPerCore: 10
        maxPods: 250
    #...

    各項目の説明:

    metadata.name
    CR の名前を指定します。
    spec.machineConfigPoolSelector.matchLabels
    マシン設定プールからラベルを指定します。
    spec.kubeletConfig.podsPerCore
    ノード上のプロセッサーコア数に基づいて、ノードが実行できる Pod の数を指定します。
    spec.kubeletConfig.maxPods

    ノードのプロパティーに関係なく、ノードが実行できる Pod の数を固定値に指定します。

    注記

    podsPerCore0 に設定すると、この制限が無効になります。

    上記の例では、podsPerCore のデフォルト値は 10 であり、maxPods のデフォルト値は 250 です。つまり、ノードのコア数が 25 以上でない限り、デフォルトにより podsPerCore が制限要素になります。

  2. 以下のコマンドを実行して CR を作成します。

    $ oc create -f <file_name>.yaml

検証

  • 変更が適用されているかどうかを確認するには、MachineConfigPool の CRD をリスト表示します。変更が Machine Config Controller によって取得されると、UPDATING 列で True と報告されます。

    $ oc get machineconfigpools

    出力例

    NAME     CONFIG                        UPDATED   UPDATING   DEGRADED
    master   master-9cc2c72f205e103bb534   False     False      False
    worker   worker-8cecd1236b33ee3f8a5e   False     True       False

    変更が完了すると、UPDATED 列に True が 表示されます。

    $ oc get machineconfigpools

    出力例

    NAME     CONFIG                        UPDATED   UPDATING   DEGRADED
    master   master-9cc2c72f205e103bb534   False     True       False
    worker   worker-8cecd1236b33ee3f8a5e   True      False      False

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る