4.6.2. インフラストラクチャーノードの作成
ラベルを使用すると、コンピュートノードをインフラストラクチャーノードとして設定でき、そこにインフラストラクチャーリソースを移動できます。インフラストラクチャーノードを作成した後、taint と toleration を使用して、適切なワークロードをそれらのノードに移動できます。
installer-provisioned infrastructure 環境、または制御プレーンノードがマシン API によって管理されるクラスターについては、インフラストラクチャーマシンセットの作成を参照してください。
必要に応じて、クラスター全体のデフォルトのノードセレクターを作成できます。デフォルトのノードセレクターは、すべての namespace で作成された Pod に適用され、Pod の既存のノードセレクターと重なります。これにより、Pod のセレクターがさらに制約されます。
デフォルトのノードセレクターのキーが Pod のラベルのキーと競合する場合、デフォルトのノードセレクターは適用されません。
ただし、Pod がスケジュール対象外になる可能性のあるデフォルトノードセレクターを設定しないでください。たとえば、Pod のラベルが node-role.kubernetes.io/master="" などの別のノードロールに設定されている場合、デフォルトのノードセレクターを node-role.kubernetes.io/infra="" などの特定のノードロールに設定すると、Pod がスケジュール不能になる可能性があります。このため、デフォルトのノードセレクターを特定のノードロールに設定する際には注意が必要です。
または、プロジェクトノードセレクターを使用して、クラスター全体でのノードセレクターの競合を避けることができます。
手順
インフラストラクチャーノードとして機能させたいコンピュートノードにラベルを追加します。
$ oc label node <node-name> node-role.kubernetes.io/infra=""該当するノードに
infraロールがあるかどうかを確認します。$ oc get nodesオプション: クラスター全体のデフォルトのノードセレクターを作成します。
Schedulerオブジェクトを編集します。$ oc edit scheduler cluster適切なノードセレクターと共に
defaultNodeSelectorフィールドを追加します。apiVersion: config.openshift.io/v1 kind: Scheduler metadata: name: cluster spec: defaultNodeSelector: node-role.kubernetes.io/infra="" # ...この例のノードセレクターは、デフォルトでインフラストラクチャーノードに Pod をデプロイします。
- 変更を適用するためにファイルを保存します。
これで、インフラストラクチャーリソースを新しいインフラストラクチャーノードに移動できるようになりました。また、新しいインフラストラクチャーノード上の不要なワークロードやノードに属さないワークロードを削除してください。「OpenShift Container Platform インフラストラクチャーコンポーネント」で、インフラストラクチャーノードでの使用がサポートされているワークロードのリストを参照してください。