6.7. マシンセットリソースのインフラストラクチャーノードへの割り当て


インフラストラクチャーマシンセットの作成後、worker および infra ロールが新規の infra ノードに適用されます。infra ロールが割り当てられたノードは、worker ロールも適用されている場合でも、環境を実行するために必要なサブスクリプションの合計数にはカウントされません。

ただし、infra ノードに worker ロールが割り当てられている場合は、ユーザーのワークロードが誤って infra ノードに割り当てられる可能性があります。これを回避するには、taint を、制御する必要のある Pod の infra ノードおよび toleration に適用できます。

infra および worker ロールが割り当てられているインフラストラクチャーノードがある場合、ユーザーのワークロードがこれに割り当てられないようにノードを設定する必要があります。

重要

インフラストラクチャーノード用に作成されたデュアル infra,worker ラベルを保持し、テイントおよび容認(Toleration)を使用してユーザーのワークロードがスケジュールされているノードを管理することを推奨します。ノードから worker ラベルを削除する場合には、カスタムプールを作成して管理する必要があります。master または worker 以外のラベルが割り当てられたノードは、カスタムプールなしには MCO で認識されません。worker ラベルを維持すると、カスタムラベルを選択するカスタムプールが存在しない場合に、ノードをデフォルトのワーカーマシン設定プールで管理できます。infra ラベルは、サブスクリプションの合計数にカウントされないクラスターと通信します。

前提条件

  • 追加の MachineSet を OpenShift Container Platform クラスターに設定します。

手順

  1. テイントをインフラストラクチャーノードに追加し、ユーザーのワークロードをこれにスケジュールできないようにします。

    1. ノードに taint があるかどうかを判別します。

      $ oc describe nodes <node_name>
      Copy to Clipboard Toggle word wrap

      出力例

      oc describe node ci-ln-iyhx092-f76d1-nvdfm-worker-b-wln2l
      Name:               ci-ln-iyhx092-f76d1-nvdfm-worker-b-wln2l
      Roles:              worker
       ...
      Taints:             node-role.kubernetes.io/infra=reserved:NoSchedule
       ...
      Copy to Clipboard Toggle word wrap

      この例では、ノードに taint があることを示しています。次の手順に進み、toleration を Pod に追加してください。

    2. ユーザーワークロードをスケジューリングできないように、taint を設定していない場合は、以下を実行します。

      $ oc adm taint nodes <node_name> <key>=<value>:<effect>
      Copy to Clipboard Toggle word wrap

      以下に例を示します。

      $ oc adm taint nodes node1 node-role.kubernetes.io/infra=reserved:NoSchedule
      Copy to Clipboard Toggle word wrap
      ヒント

      または、Pod 仕様を編集してテイントを追加できます。

      apiVersion: v1
      kind: Node
      metadata:
        name: node1
      # ...
      spec:
        taints:
          - key: node-role.kubernetes.io/infra
            value: reserved
            effect: NoSchedule
      # ...
      Copy to Clipboard Toggle word wrap

      これらの例では、テイントを node-role.kubernetes.io/infra キーと NoSchedule テイントの効果を持つ node1 にテイントを配置します。effect が NoSchedule のノードは、taint を容認する Pod のみをスケジュールしますが、既存の Pod はノードにスケジュールされたままになります。

      NoSchedule テイントをインフラストラクチャーノードに追加した場合、そのノードのデーモンセットによって制御される Pod は misscheduled としてマークされます。Red Hat ナレッジベースソリューション 誤って、Pod を削除するか、または Pod に容認を追加する 必要が あり ます。Operator によって管理されるデーモンセットオブジェクトに容認を追加できないことに注意してください。

      注記

      Descheduler が使用されると、ノードのテイントに違反する Pod はクラスターからエビクトされる可能性があります。

  2. ルーター、レジストリー、およびモニタリングのワークロードなどのインフラストラクチャーノードでスケジュールする必要のある Pod に容認を追加します。直前の例を参照し、以下の容認を Pod オブジェクト仕様に追加します。

    apiVersion: v1
    kind: Pod
    metadata:
      annotations:
    
    # ...
    spec:
    # ...
      tolerations:
        - key: node-role.kubernetes.io/infra 
    1
    
          value: reserved 
    2
    
          effect: NoSchedule 
    3
    
          operator: Equal 
    4
    Copy to Clipboard Toggle word wrap
    1
    ノードに追加したキーを指定します。
    2
    ノードに追加したキーと値のペア taint の値を指定します。
    3
    ノードに追加した effect を指定します。
    4
    Equal Operator を指定して、キー node-role.kubernetes.io/infra のあるテイントがノードに存在する必要があるようにします。

    こ toleration は、oc adm taint コマンドで作成された taint と一致します。この容認のある Pod はインフラストラクチャーノードにスケジュールできます。

    注記

    OLM でインストールされた Operator の Pod をインフラストラクチャーノードに移動することは常に可能な訳ではありません。Operator Pod を移動する機能は、各 Operator の設定によって異なります。

  3. スケジューラーを使用して Pod をインフラストラクチャーノードにスケジュールします。詳細は、Controlling Pod placement using the scheduler を参照してください。
  4. 新しいインフラストラクチャーノードで必要でない、または属さないワークロードを削除します。OpenShift Container Platform インフラストラクチャーコンポーネントのインフラストラクチャーノードでサポートされるワークロードのリストを参照してください。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat