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": ""
presto:
spec:
coordinator:
nodeSelector:
"node-role.kubernetes.io/infra": ""
worker:
nodeSelector:
"node-role.kubernetes.io/infra": ""
hive:
spec:
metastore:
nodeSelector:
"node-role.kubernetes.io/infra": ""
server:
nodeSelector:
"node-role.kubernetes.io/infra": ""
オペランド Pod の特定のノードセレクターを設定する前に、 openshift.io/node-selector: "" namespace アノテーションをメータリング namespace YAML ファイルに追加します。openshift.io/node-selector アノテーションがプロジェクトに設定されている場合、その値はクラスター全体の Scheduler オブジェクトの spec.defaultNodeSelector フィールドの値に優先して使用されます。
検証
以下のチェックのいずれかを実行してメータリングノードセレクターを検証できます。
メータリングのすべての Pod が MeteringConfig カスタムリソースで設定されるノードの IP に適切にスケジュールされていることを確認します。
手順
openshift-meteringnamespace のすべての Pod を確認します。$ oc --namespace openshift-metering get pods -o wide出力には、
openshift-meteringnamespace で実行される各 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-meteringnamespace のノードを、クラスター内の各ノードのNAMEと比較します。$ oc get nodesNAME STATUS ROLES AGE VERSION ip-10-0-147-106.us-east-2.compute.internal Ready master 14h v1.18.3+6025c28 ip-10-0-150-175.us-east-2.compute.internal Ready worker 14h v1.18.3+6025c28 ip-10-0-175-23.us-east-2.compute.internal Ready master 14h v1.18.3+6025c28 ip-10-0-189-6.us-east-2.compute.internal Ready worker 14h v1.18.3+6025c28 ip-10-0-205-158.us-east-2.compute.internal Ready master 14h v1.18.3+6025c28 ip-10-0-210-167.us-east-2.compute.internal Ready worker 14h v1.18.3+6025c28
MeteringConfig カスタムリソースのノードセレクターの設定が、メータリングオペランド Pod がスケジュールされないようにクラスター全体のノードセレクター設定に干渉しないことを確認します。
手順
クラスター全体の Scheduler オブジェクトで
spec.defaultNodeSelectorフィールドを確認します。ここには、デフォルトで Pod がスケジュールされている場所が示されます。$ oc get schedulers.config.openshift.io cluster -o yaml