Menu Close

4.2.2. 노드 선택기

특정 노드 집합에서 미터링 구성 요소를 실행할 수 있습니다. 미터링 구성 요소에서 nodeSelector를 설정하여 구성 요소가 예약된 위치를 제어합니다. 아래 node-selectors.yaml 파일은 각 구성 요소에 대한 노드 선택기를 설정하는 예를 제공합니다.

참고

피연산자 Pod에 대한 특정 노드 선택기를 구성하기 전에 openshift.io/node-selector: "" 네임스페이스 주석을 미터링 네임스페이스 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
1 2 3 4 5
적절한 값이 설정된 nodeSelector 매개변수를 이동하려는 구성 요소에 추가합니다. 표시된 형식으로 nodeSelector를 사용하거나 노드에 지정된 값에 따라 키-값 쌍을 사용할 수 있습니다.
참고

피연산자 Pod에 대한 특정 노드 선택기를 구성하기 전에 openshift.io/node-selector: "" 네임스페이스 주석을 미터링 네임스페이스 YAML 파일에 추가합니다. 프로젝트에 openshift.io/node-selector 주석이 설정되어 있으면 해당 값은 클러스터 전체 Scheduler 오브젝트에서 spec.defaultNodeSelector 필드의 값보다 우선하여 사용됩니다.

검증

다음 점검 중 하나를 수행하여 미터링 노드 선택기를 확인할 수 있습니다.

  • MeteringConfig 사용자 정의 리소스에 구성된 노드의 IP에 미터링의 모든 Pod가 올바르게 예약되어 있는지 확인합니다.

    1. openshift-metering 네임스페이스의 모든 Pod를 확인합니다.

      $ oc --namespace openshift-metering get pods -o wide

      출력에는 openshift-metering 네임스페이스에서 실행되는 각 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>

    2. openshift-metering 네임스페이스의 노드를 클러스터의 각 노드 NAME과 비교합니다.

      $ oc get nodes

      출력 예

      NAME                                         STATUS   ROLES    AGE   VERSION
      ip-10-0-147-106.us-east-2.compute.internal   Ready    master   14h   v1.19.0+6025c28
      ip-10-0-150-175.us-east-2.compute.internal   Ready    worker   14h   v1.19.0+6025c28
      ip-10-0-175-23.us-east-2.compute.internal    Ready    master   14h   v1.19.0+6025c28
      ip-10-0-189-6.us-east-2.compute.internal     Ready    worker   14h   v1.19.0+6025c28
      ip-10-0-205-158.us-east-2.compute.internal   Ready    master   14h   v1.19.0+6025c28
      ip-10-0-210-167.us-east-2.compute.internal   Ready    worker   14h   v1.19.0+6025c28

  • MeteringConfig 사용자 정의 리소스의 노드 선택기 구성이 미터링 피연산자 Pod가 예약되지 않도록 클러스터 전체 노드 선택기 설정을 적용하지 않는지 확인합니다.

    • 기본적으로 Pod 예약 위치를 표시하는 spec.defaultNodeSelector 필드에 대해 클러스터 전체 Scheduler 오브젝트를 확인합니다.

      $ oc get schedulers.config.openshift.io cluster -o yaml