4.2.2. ノードセレクター
特定のノードセットでメータリングコンポーネントを実行できます。メータリングコンポーネントに nodeSelector
を設定し、コンポーネントがスケジュールされる場所を制御します。以下の node-selectors.yaml
ファイルは、各コンポーネントのノードセレクターを設定する例を示しています。
オペランド Pod の特定のノードセレクターを設定する前に、openshift.io/node-selector: ""
namespace アノテーションをメータリング namespace YAML ファイルに追加します。""
をアノテーションの値として指定します。
apiVersion: metering.openshift.io/v1 kind: MeteringConfig metadata: name: "operator-metering" spec: reporting-operator: spec: nodeSelector: "node-role.kubernetes.io/infra": "" 1 presto: spec: coordinator: nodeSelector: "node-role.kubernetes.io/infra": "" 2 worker: nodeSelector: "node-role.kubernetes.io/infra": "" 3 hive: spec: metastore: nodeSelector: "node-role.kubernetes.io/infra": "" 4 server: nodeSelector: "node-role.kubernetes.io/infra": "" 5
オペランド Pod の特定のノードセレクターを設定する前に、openshift.io/node-selector: ""
namespace アノテーションをメータリング namespace YAML ファイルに追加します。openshift.io/node-selector
アノテーションがプロジェクトに設定されている場合、その値はクラスター全体の Scheduler
オブジェクトの spec.defaultNodeSelector
フィールドの値に優先して使用されます。
検証
以下のチェックのいずれかを実行してメータリングノードセレクターを検証できます。
メータリングのすべての Pod が
MeteringConfig
カスタムリソースで設定されるノードの IP に適切にスケジュールされていることを確認します。openshift-metering
namespace のすべての Pod を確認します。$ oc --namespace openshift-metering get pods -o wide
出力には、
openshift-metering
namespace で実行される各 Pod のNODE
および対応するIP
が表示されます。出力例
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES hive-metastore-0 1/2 Running 0 4m33s 10.129.2.26 ip-10-0-210-167.us-east-2.compute.internal <none> <none> hive-server-0 2/3 Running 0 4m21s 10.128.2.26 ip-10-0-150-175.us-east-2.compute.internal <none> <none> metering-operator-964b4fb55-4p699 2/2 Running 0 7h30m 10.131.0.33 ip-10-0-189-6.us-east-2.compute.internal <none> <none> nfs-server 1/1 Running 0 7h30m 10.129.2.24 ip-10-0-210-167.us-east-2.compute.internal <none> <none> presto-coordinator-0 2/2 Running 0 4m8s 10.131.0.35 ip-10-0-189-6.us-east-2.compute.internal <none> <none> reporting-operator-869b854c78-8g2x5 1/2 Running 0 7h27m 10.128.2.25 ip-10-0-150-175.us-east-2.compute.internal <none> <none>
openshift-metering
namespace のノードを、クラスター内の各ノードのNAME
と比較します。$ oc get nodes
出力例
NAME STATUS ROLES AGE VERSION ip-10-0-147-106.us-east-2.compute.internal Ready master 14h v1.20.0+6025c28 ip-10-0-150-175.us-east-2.compute.internal Ready worker 14h v1.20.0+6025c28 ip-10-0-175-23.us-east-2.compute.internal Ready master 14h v1.20.0+6025c28 ip-10-0-189-6.us-east-2.compute.internal Ready worker 14h v1.20.0+6025c28 ip-10-0-205-158.us-east-2.compute.internal Ready master 14h v1.20.0+6025c28 ip-10-0-210-167.us-east-2.compute.internal Ready worker 14h v1.20.0+6025c28
MeteringConfig
カスタムリソースのノードセレクターの設定が、メータリングオペランド Pod がスケジュールされないようにクラスター全体のノードセレクター設定に干渉しないことを確認します。クラスター全体の
Scheduler
オブジェクトでspec.defaultNodeSelector
フィールドを確認します。ここには、デフォルトで Pod がスケジュールされている場所が示されます。$ oc get schedulers.config.openshift.io cluster -o yaml