7.3. 권장되는 클러스터 구성이 적용되었는지 확인


클러스터가 올바른 구성으로 실행되고 있는지 확인할 수 있습니다. 다음 절차에서는 OpenShift Container Platform 4.19 클러스터에 DU 애플리케이션을 배포하는 데 필요한 다양한 구성을 확인하는 방법을 설명합니다.

사전 요구 사항

  • 클러스터를 배포하고 vDU 워크로드에 맞게 조정했습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.
  • 클러스터 관리자 권한이 있는 사용자로 로그인했습니다.

프로세스

  1. 기본 OperatorHub 소스가 비활성화되어 있는지 확인합니다. 다음 명령을 실행합니다.

    $ oc get operatorhub cluster -o yaml
    Copy to Clipboard Toggle word wrap

    출력 예

    spec:
        disableAllDefaultSources: true
    Copy to Clipboard Toggle word wrap

  2. 다음 명령을 실행하여 모든 필수 CatalogSource 리소스가 작업 분할( PreferredDuringScheduling )에 대해 주석이 달려 있는지 확인하세요.

    $ oc get catalogsource -A -o jsonpath='{range .items[*]}{.metadata.name}{" -- "}{.metadata.annotations.target\.workload\.openshift\.io/management}{"\n"}{end}'
    Copy to Clipboard Toggle word wrap

    출력 예

    certified-operators -- {"effect": "PreferredDuringScheduling"}
    community-operators -- {"effect": "PreferredDuringScheduling"}
    ran-operators 
    1
    
    redhat-marketplace -- {"effect": "PreferredDuringScheduling"}
    redhat-operators -- {"effect": "PreferredDuringScheduling"}
    Copy to Clipboard Toggle word wrap

    1
    주석이 달리지 않은 CatalogSource 리소스도 반환됩니다. 이 예에서 ran-operators CatalogSource 리소스는 주석이 달려 있지 않으며 PreferredDuringScheduling 주석이 없습니다.
    참고

    적절하게 구성된 vDU 클러스터에서는 주석이 달린 카탈로그 소스가 하나만 나열됩니다.

  3. 모든 해당 OpenShift Container Platform Operator 네임스페이스에 워크로드 분할에 대한 주석이 달려 있는지 확인하세요. 여기에는 핵심 OpenShift Container Platform과 함께 설치된 모든 Operator와 참조 DU 튜닝 구성에 포함된 추가 Operator 세트가 포함됩니다. 다음 명령을 실행합니다.

    $ oc get namespaces -A -o jsonpath='{range .items[*]}{.metadata.name}{" -- "}{.metadata.annotations.workload\.openshift\.io/allowed}{"\n"}{end}'
    Copy to Clipboard Toggle word wrap

    출력 예

    default --
    openshift-apiserver -- management
    openshift-apiserver-operator -- management
    openshift-authentication -- management
    openshift-authentication-operator -- management
    Copy to Clipboard Toggle word wrap

    중요

    추가 연산자는 워크로드 분할에 주석을 달면 안 됩니다. 이전 명령의 출력에서 추가 연산자는 -- 구분 기호의 오른쪽에 값 없이 나열되어야 합니다.

  4. ClusterLogging 구성이 올바른지 확인하세요. 다음 명령을 실행하세요.

    1. 적절한 입력 및 출력 로그가 구성되었는지 확인합니다.

      $ oc get -n openshift-logging ClusterLogForwarder instance -o yaml
      Copy to Clipboard Toggle word wrap

      출력 예

      apiVersion: logging.openshift.io/v1
      kind: ClusterLogForwarder
      metadata:
        creationTimestamp: "2022-07-19T21:51:41Z"
        generation: 1
        name: instance
        namespace: openshift-logging
        resourceVersion: "1030342"
        uid: 8c1a842d-80c5-447a-9150-40350bdf40f0
      spec:
        inputs:
        - infrastructure: {}
          name: infra-logs
        outputs:
        - name: kafka-open
          type: kafka
          url: tcp://10.46.55.190:9092/test
        pipelines:
        - inputRefs:
          - audit
          name: audit-logs
          outputRefs:
          - kafka-open
        - inputRefs:
          - infrastructure
          name: infrastructure-logs
          outputRefs:
          - kafka-open
      ...
      Copy to Clipboard Toggle word wrap

    2. 큐레이션 일정이 귀하의 애플리케이션에 적합한지 확인하세요.

      $ oc get -n openshift-logging clusterloggings.logging.openshift.io instance -o yaml
      Copy to Clipboard Toggle word wrap

      출력 예

      apiVersion: logging.openshift.io/v1
      kind: ClusterLogging
      metadata:
        creationTimestamp: "2022-07-07T18:22:56Z"
        generation: 1
        name: instance
        namespace: openshift-logging
        resourceVersion: "235796"
        uid: ef67b9b8-0e65-4a10-88ff-ec06922ea796
      spec:
        collection:
          logs:
            fluentd: {}
            type: fluentd
        curation:
          curator:
            schedule: 30 3 * * *
          type: curator
        managementState: Managed
      ...
      Copy to Clipboard Toggle word wrap

  5. 다음 명령을 실행하여 웹 콘솔이 비활성화되었는지( managementState: Removed ) 확인하세요.

    $ oc get consoles.operator.openshift.io cluster -o jsonpath="{ .spec.managementState }"
    Copy to Clipboard Toggle word wrap

    출력 예

    Removed
    Copy to Clipboard Toggle word wrap

  6. 다음 명령을 실행하여 클러스터 노드에서 chronyd가 비활성화되었는지 확인하세요.

    $ oc debug node/<node_name>
    Copy to Clipboard Toggle word wrap

    노드에서 chronyd 상태를 확인하세요.

    sh-4.4# chroot /host
    Copy to Clipboard Toggle word wrap
    sh-4.4# systemctl status chronyd
    Copy to Clipboard Toggle word wrap

    출력 예

    ● chronyd.service - NTP client/server
        Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor preset: enabled)
        Active: inactive (dead)
          Docs: man:chronyd(8)
                man:chrony.conf(5)
    Copy to Clipboard Toggle word wrap

  7. linuxptp-daemon 컨테이너와 PTP 관리 클라이언트( pmc ) 도구에 대한 원격 셸 연결을 사용하여 PTP 인터페이스가 기본 시계와 성공적으로 동기화되었는지 확인하세요.

    1. 다음 명령을 실행하여 $PTP_POD_NAME 변수를 linuxptp-daemon pod의 이름으로 설정합니다.

      $ PTP_POD_NAME=$(oc get pods -n openshift-ptp -l app=linuxptp-daemon -o name)
      Copy to Clipboard Toggle word wrap
    2. 다음 명령을 실행하여 PTP 장치의 동기화 상태를 확인하세요.

      $ oc -n openshift-ptp rsh -c linuxptp-daemon-container ${PTP_POD_NAME} pmc -u -f /var/run/ptp4l.0.config -b 0 'GET PORT_DATA_SET'
      Copy to Clipboard Toggle word wrap

      출력 예

      sending: GET PORT_DATA_SET
        3cecef.fffe.7a7020-1 seq 0 RESPONSE MANAGEMENT PORT_DATA_SET
          portIdentity            3cecef.fffe.7a7020-1
          portState               SLAVE
          logMinDelayReqInterval  -4
          peerMeanPathDelay       0
          logAnnounceInterval     1
          announceReceiptTimeout  3
          logSyncInterval         0
          delayMechanism          1
          logMinPdelayReqInterval 0
          versionNumber           2
        3cecef.fffe.7a7020-2 seq 0 RESPONSE MANAGEMENT PORT_DATA_SET
          portIdentity            3cecef.fffe.7a7020-2
          portState               LISTENING
          logMinDelayReqInterval  0
          peerMeanPathDelay       0
          logAnnounceInterval     1
          announceReceiptTimeout  3
          logSyncInterval         0
          delayMechanism          1
          logMinPdelayReqInterval 0
          versionNumber           2
      Copy to Clipboard Toggle word wrap

    3. 다음 pmc 명령을 실행하여 PTP 시계 상태를 확인하세요.

      $ oc -n openshift-ptp rsh -c linuxptp-daemon-container ${PTP_POD_NAME} pmc -u -f /var/run/ptp4l.0.config -b 0 'GET TIME_STATUS_NP'
      Copy to Clipboard Toggle word wrap

      출력 예

      sending: GET TIME_STATUS_NP
        3cecef.fffe.7a7020-0 seq 0 RESPONSE MANAGEMENT TIME_STATUS_NP
          master_offset              10 
      1
      
          ingress_time               1657275432697400530
          cumulativeScaledRateOffset +0.000000000
          scaledLastGmPhaseChange    0
          gmTimeBaseIndicator        0
          lastGmPhaseChange          0x0000'0000000000000000.0000
          gmPresent                  true 
      2
      
          gmIdentity                 3c2c30.ffff.670e00
      Copy to Clipboard Toggle word wrap

      1
      master_offset은 -100~100ns 사이여야 합니다.
      2
      PTP 클록이 마스터에 동기화되어 있고, 로컬 클록이 그랜드마스터 클록이 아님을 나타냅니다.
    4. /var/run/ptp4l.0.config 에 있는 값에 해당하는 예상 마스터 오프셋 값이 linuxptp-daemon-container 로그에서 발견되는지 확인하세요.

      $ oc logs $PTP_POD_NAME -n openshift-ptp -c linuxptp-daemon-container
      Copy to Clipboard Toggle word wrap

      출력 예

      phc2sys[56020.341]: [ptp4l.1.config] CLOCK_REALTIME phc offset  -1731092 s2 freq -1546242 delay    497
      ptp4l[56020.390]: [ptp4l.1.config] master offset         -2 s2 freq   -5863 path delay       541
      ptp4l[56020.390]: [ptp4l.0.config] master offset         -8 s2 freq  -10699 path delay       533
      Copy to Clipboard Toggle word wrap

  8. 다음 명령을 실행하여 SR-IOV 구성이 올바른지 확인하세요.

    1. SriovOperatorConfig 리소스의 disableDrain 값이 true 로 설정되어 있는지 확인하세요.

      $ oc get sriovoperatorconfig -n openshift-sriov-network-operator default -o jsonpath="{.spec.disableDrain}{'\n'}"
      Copy to Clipboard Toggle word wrap

      출력 예

      true
      Copy to Clipboard Toggle word wrap

    2. 다음 명령을 실행하여 SriovNetworkNodeState 동기화 상태가 Succeeded 인지 확인하세요.

      $ oc get SriovNetworkNodeStates -n openshift-sriov-network-operator -o jsonpath="{.items[*].status.syncStatus}{'\n'}"
      Copy to Clipboard Toggle word wrap

      출력 예

      Succeeded
      Copy to Clipboard Toggle word wrap

    3. SR-IOV에 대해 구성된 각 인터페이스 아래의 가상 기능( Vfs )의 예상 수와 구성이 .status.interfaces 필드에 있고 올바른지 확인합니다. 예를 들면 다음과 같습니다.

      $ oc get SriovNetworkNodeStates -n openshift-sriov-network-operator -o yaml
      Copy to Clipboard Toggle word wrap

      출력 예

      apiVersion: v1
      items:
      - apiVersion: sriovnetwork.openshift.io/v1
        kind: SriovNetworkNodeState
      ...
        status:
          interfaces:
          ...
          - Vfs:
            - deviceID: 154c
              driver: vfio-pci
              pciAddress: 0000:3b:0a.0
              vendor: "8086"
              vfID: 0
            - deviceID: 154c
              driver: vfio-pci
              pciAddress: 0000:3b:0a.1
              vendor: "8086"
              vfID: 1
            - deviceID: 154c
              driver: vfio-pci
              pciAddress: 0000:3b:0a.2
              vendor: "8086"
              vfID: 2
            - deviceID: 154c
              driver: vfio-pci
              pciAddress: 0000:3b:0a.3
              vendor: "8086"
              vfID: 3
            - deviceID: 154c
              driver: vfio-pci
              pciAddress: 0000:3b:0a.4
              vendor: "8086"
              vfID: 4
            - deviceID: 154c
              driver: vfio-pci
              pciAddress: 0000:3b:0a.5
              vendor: "8086"
              vfID: 5
            - deviceID: 154c
              driver: vfio-pci
              pciAddress: 0000:3b:0a.6
              vendor: "8086"
              vfID: 6
            - deviceID: 154c
              driver: vfio-pci
              pciAddress: 0000:3b:0a.7
              vendor: "8086"
              vfID: 7
      Copy to Clipboard Toggle word wrap

  9. 클러스터 성능 프로필이 올바른지 확인하세요. CPUHugePages 섹션은 하드웨어 구성에 따라 달라집니다. 다음 명령을 실행합니다.

    $ oc get PerformanceProfile openshift-node-performance-profile -o yaml
    Copy to Clipboard Toggle word wrap

    출력 예

    apiVersion: performance.openshift.io/v2
    kind: PerformanceProfile
    metadata:
      creationTimestamp: "2022-07-19T21:51:31Z"
      finalizers:
      - foreground-deletion
      generation: 1
      name: openshift-node-performance-profile
      resourceVersion: "33558"
      uid: 217958c0-9122-4c62-9d4d-fdc27c31118c
    spec:
      additionalKernelArgs:
      - idle=poll
      - rcupdate.rcu_normal_after_boot=0
      - efi=runtime
      cpu:
        isolated: 2-51,54-103
        reserved: 0-1,52-53
      hugepages:
        defaultHugepagesSize: 1G
        pages:
        - count: 32
          size: 1G
      machineConfigPoolSelector:
        pools.operator.machineconfiguration.openshift.io/master: ""
      net:
        userLevelNetworking: true
      nodeSelector:
        node-role.kubernetes.io/master: ""
      numa:
        topologyPolicy: restricted
      realTimeKernel:
        enabled: true
    status:
      conditions:
      - lastHeartbeatTime: "2022-07-19T21:51:31Z"
        lastTransitionTime: "2022-07-19T21:51:31Z"
        status: "True"
        type: Available
      - lastHeartbeatTime: "2022-07-19T21:51:31Z"
        lastTransitionTime: "2022-07-19T21:51:31Z"
        status: "True"
        type: Upgradeable
      - lastHeartbeatTime: "2022-07-19T21:51:31Z"
        lastTransitionTime: "2022-07-19T21:51:31Z"
        status: "False"
        type: Progressing
      - lastHeartbeatTime: "2022-07-19T21:51:31Z"
        lastTransitionTime: "2022-07-19T21:51:31Z"
        status: "False"
        type: Degraded
      runtimeClass: performance-openshift-node-performance-profile
      tuned: openshift-cluster-node-tuning-operator/openshift-node-performance-openshift-node-performance-profile
    Copy to Clipboard Toggle word wrap

    참고

    CPU 설정은 서버에서 사용 가능한 코어 수에 따라 달라지며 작업 분할 설정과 일치해야 합니다. hugepages 구성은 서버와 애플리케이션에 따라 다릅니다.

  10. 다음 명령을 실행하여 PerformanceProfile 이 클러스터에 성공적으로 적용되었는지 확인합니다.

    $ oc get performanceprofile openshift-node-performance-profile -o jsonpath="{range .status.conditions[*]}{ @.type }{' -- '}{@.status}{'\n'}{end}"
    Copy to Clipboard Toggle word wrap

    출력 예

    Available -- True
    Upgradeable -- True
    Progressing -- False
    Degraded -- False
    Copy to Clipboard Toggle word wrap

  11. 다음 명령을 실행하여 Tuned 성능 패치 설정을 확인하세요.

    $ oc get tuneds.tuned.openshift.io -n openshift-cluster-node-tuning-operator performance-patch -o yaml
    Copy to Clipboard Toggle word wrap

    출력 예

    apiVersion: tuned.openshift.io/v1
    kind: Tuned
    metadata:
      creationTimestamp: "2022-07-18T10:33:52Z"
      generation: 1
      name: performance-patch
      namespace: openshift-cluster-node-tuning-operator
      resourceVersion: "34024"
      uid: f9799811-f744-4179-bf00-32d4436c08fd
    spec:
      profile:
      - data: |
          [main]
          summary=Configuration changes profile inherited from performance created tuned
          include=openshift-node-performance-openshift-node-performance-profile
          [bootloader]
          cmdline_crash=nohz_full=2-23,26-47 
    1
    
          [sysctl]
          kernel.timer_migration=1
          [scheduler]
          group.ice-ptp=0:f:10:*:ice-ptp.*
          [service]
          service.stalld=start,enable
          service.chronyd=stop,disable
        name: performance-patch
      recommend:
      - machineConfigLabels:
          machineconfiguration.openshift.io/role: master
        priority: 19
        profile: performance-patch
    Copy to Clipboard Toggle word wrap

    1
    cmdline=nohz_full= 의 CPU 목록은 하드웨어 구성에 따라 달라집니다.
  12. 다음 명령을 실행하여 클러스터 네트워킹 진단이 비활성화되었는지 확인하세요.

    $ oc get networks.operator.openshift.io cluster -o jsonpath='{.spec.disableNetworkDiagnostics}'
    Copy to Clipboard Toggle word wrap

    출력 예

    true
    Copy to Clipboard Toggle word wrap

  13. Kubelet 하우스키핑 간격이 더 느린 속도로 조정되었는지 확인하세요. 이는 containerMountNS 머신 구성에서 설정됩니다. 다음 명령을 실행합니다.

    $ oc describe machineconfig container-mount-namespace-and-kubelet-conf-master | grep OPENSHIFT_MAX_HOUSEKEEPING_INTERVAL_DURATION
    Copy to Clipboard Toggle word wrap

    출력 예

    Environment="OPENSHIFT_MAX_HOUSEKEEPING_INTERVAL_DURATION=60s"
    Copy to Clipboard Toggle word wrap

  14. 다음 명령을 실행하여 Grafana와 alertManagerMain 이 비활성화되어 있고 Prometheus 보존 기간이 24시간으로 설정되어 있는지 확인하세요.

    $ oc get configmap cluster-monitoring-config -n openshift-monitoring -o jsonpath="{ .data.config\.yaml }"
    Copy to Clipboard Toggle word wrap

    출력 예

    grafana:
      enabled: false
    alertmanagerMain:
      enabled: false
    prometheusK8s:
       retention: 24h
    Copy to Clipboard Toggle word wrap

    1. 다음 명령을 사용하여 Grafana 및 alertManagerMain 경로가 클러스터에서 발견되지 않는지 확인하세요.

      $ oc get route -n openshift-monitoring alertmanager-main
      Copy to Clipboard Toggle word wrap
      $ oc get route -n openshift-monitoring grafana
      Copy to Clipboard Toggle word wrap

      두 쿼리 모두 서버 오류(NotFound) 메시지를 반환해야 합니다.

  15. 다음 명령을 실행하여 PerformanceProfile , Tuned performance-patch, 워크로드 분할 및 커널 명령줄 인수 각각에 대해 최소 4개의 CPU가 예약 되어 있는지 확인하세요.

    $ oc get performanceprofile -o jsonpath="{ .items[0].spec.cpu.reserved }"
    Copy to Clipboard Toggle word wrap

    출력 예

    0-3
    Copy to Clipboard Toggle word wrap

    참고

    작업 부하 요구 사항에 따라 추가로 예약된 CPU를 할당해야 할 수도 있습니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat