7.3. 권장되는 클러스터 구성이 적용되었는지 확인
클러스터가 올바른 구성으로 실행되고 있는지 확인할 수 있습니다. 다음 절차에서는 OpenShift Container Platform 4.19 클러스터에 DU 애플리케이션을 배포하는 데 필요한 다양한 구성을 확인하는 방법을 설명합니다.
사전 요구 사항
- 클러스터를 배포하고 vDU 워크로드에 맞게 조정했습니다.
-
OpenShift CLI(
oc
)가 설치되어 있습니다. -
클러스터 관리자
권한이 있는 사용자로 로그인했습니다.
프로세스
기본 OperatorHub 소스가 비활성화되어 있는지 확인합니다. 다음 명령을 실행합니다.
oc get operatorhub cluster -o yaml
$ oc get operatorhub cluster -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
spec: disableAllDefaultSources: true
spec: disableAllDefaultSources: true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 모든 필수
CatalogSource
리소스가 작업 분할(PreferredDuringScheduling
)에 대해 주석이 달려 있는지 확인하세요.oc get catalogsource -A -o jsonpath='{range .items[*]}{.metadata.name}{" -- "}{.metadata.annotations.target\.workload\.openshift\.io/management}{"\n"}{end}'
$ oc get catalogsource -A -o jsonpath='{range .items[*]}{.metadata.name}{" -- "}{.metadata.annotations.target\.workload\.openshift\.io/management}{"\n"}{end}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
certified-operators -- {"effect": "PreferredDuringScheduling"} community-operators -- {"effect": "PreferredDuringScheduling"} ran-operators redhat-marketplace -- {"effect": "PreferredDuringScheduling"} redhat-operators -- {"effect": "PreferredDuringScheduling"}
certified-operators -- {"effect": "PreferredDuringScheduling"} community-operators -- {"effect": "PreferredDuringScheduling"} ran-operators
1 redhat-marketplace -- {"effect": "PreferredDuringScheduling"} redhat-operators -- {"effect": "PreferredDuringScheduling"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 주석이 달리지 않은
CatalogSource
리소스도 반환됩니다. 이 예에서ran-operators
CatalogSource
리소스는 주석이 달려 있지 않으며PreferredDuringScheduling
주석이 없습니다.
참고적절하게 구성된 vDU 클러스터에서는 주석이 달린 카탈로그 소스가 하나만 나열됩니다.
모든 해당 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}'
$ oc get namespaces -A -o jsonpath='{range .items[*]}{.metadata.name}{" -- "}{.metadata.annotations.workload\.openshift\.io/allowed}{"\n"}{end}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
default -- openshift-apiserver -- management openshift-apiserver-operator -- management openshift-authentication -- management openshift-authentication-operator -- management
default -- openshift-apiserver -- management openshift-apiserver-operator -- management openshift-authentication -- management openshift-authentication-operator -- management
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요추가 연산자는 워크로드 분할에 주석을 달면 안 됩니다. 이전 명령의 출력에서 추가 연산자는
--
구분 기호의 오른쪽에 값 없이 나열되어야 합니다.ClusterLogging
구성이 올바른지 확인하세요. 다음 명령을 실행하세요.적절한 입력 및 출력 로그가 구성되었는지 확인합니다.
oc get -n openshift-logging ClusterLogForwarder instance -o yaml
$ oc get -n openshift-logging ClusterLogForwarder instance -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 큐레이션 일정이 귀하의 애플리케이션에 적합한지 확인하세요.
oc get -n openshift-logging clusterloggings.logging.openshift.io instance -o yaml
$ oc get -n openshift-logging clusterloggings.logging.openshift.io instance -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
다음 명령을 실행하여 웹 콘솔이 비활성화되었는지(
managementState: Removed
) 확인하세요.oc get consoles.operator.openshift.io cluster -o jsonpath="{ .spec.managementState }"
$ oc get consoles.operator.openshift.io cluster -o jsonpath="{ .spec.managementState }"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Removed
Removed
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 클러스터 노드에서
chronyd가
비활성화되었는지 확인하세요.oc debug node/<node_name>
$ oc debug node/<node_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 노드에서
chronyd
상태를 확인하세요.chroot /host
sh-4.4# chroot /host
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl status chronyd
sh-4.4# systemctl status chronyd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
● 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)
● 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 Copied! Toggle word wrap Toggle overflow linuxptp-daemon
컨테이너와 PTP 관리 클라이언트(pmc
) 도구에 대한 원격 셸 연결을 사용하여 PTP 인터페이스가 기본 시계와 성공적으로 동기화되었는지 확인하세요.다음 명령을 실행하여
$PTP_POD_NAME
변수를linuxptp-daemon
pod의 이름으로 설정합니다.PTP_POD_NAME=$(oc get pods -n openshift-ptp -l app=linuxptp-daemon -o name)
$ PTP_POD_NAME=$(oc get pods -n openshift-ptp -l app=linuxptp-daemon -o name)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 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'
$ 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 Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음
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'
$ 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 Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /var/run/ptp4l.0.config
에 있는 값에 해당하는 예상마스터 오프셋
값이linuxptp-daemon-container
로그에서 발견되는지 확인하세요.oc logs $PTP_POD_NAME -n openshift-ptp -c linuxptp-daemon-container
$ oc logs $PTP_POD_NAME -n openshift-ptp -c linuxptp-daemon-container
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
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
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 Copied! Toggle word wrap Toggle overflow
다음 명령을 실행하여 SR-IOV 구성이 올바른지 확인하세요.
SriovOperatorConfig
리소스의disableDrain
값이true
로 설정되어 있는지 확인하세요.oc get sriovoperatorconfig -n openshift-sriov-network-operator default -o jsonpath="{.spec.disableDrain}{'\n'}"
$ oc get sriovoperatorconfig -n openshift-sriov-network-operator default -o jsonpath="{.spec.disableDrain}{'\n'}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
true
true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
SriovNetworkNodeState
동기화 상태가Succeeded
인지 확인하세요.oc get SriovNetworkNodeStates -n openshift-sriov-network-operator -o jsonpath="{.items[*].status.syncStatus}{'\n'}"
$ oc get SriovNetworkNodeStates -n openshift-sriov-network-operator -o jsonpath="{.items[*].status.syncStatus}{'\n'}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Succeeded
Succeeded
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SR-IOV에 대해 구성된 각 인터페이스 아래의 가상 기능(
Vfs
)의 예상 수와 구성이.status.interfaces
필드에 있고 올바른지 확인합니다. 예를 들면 다음과 같습니다.oc get SriovNetworkNodeStates -n openshift-sriov-network-operator -o yaml
$ oc get SriovNetworkNodeStates -n openshift-sriov-network-operator -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
클러스터 성능 프로필이 올바른지 확인하세요.
CPU
및HugePages
섹션은 하드웨어 구성에 따라 달라집니다. 다음 명령을 실행합니다.oc get PerformanceProfile openshift-node-performance-profile -o yaml
$ oc get PerformanceProfile openshift-node-performance-profile -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고CPU 설정은 서버에서 사용 가능한 코어 수에 따라 달라지며 작업 분할 설정과 일치해야 합니다.
hugepages
구성은 서버와 애플리케이션에 따라 다릅니다.다음 명령을 실행하여
PerformanceProfile
이 클러스터에 성공적으로 적용되었는지 확인합니다.oc get performanceprofile openshift-node-performance-profile -o jsonpath="{range .status.conditions[*]}{ @.type }{' -- '}{@.status}{'\n'}{end}"
$ oc get performanceprofile openshift-node-performance-profile -o jsonpath="{range .status.conditions[*]}{ @.type }{' -- '}{@.status}{'\n'}{end}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Available -- True Upgradeable -- True Progressing -- False Degraded -- False
Available -- True Upgradeable -- True Progressing -- False Degraded -- False
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
Tuned
성능 패치 설정을 확인하세요.oc get tuneds.tuned.openshift.io -n openshift-cluster-node-tuning-operator performance-patch -o yaml
$ oc get tuneds.tuned.openshift.io -n openshift-cluster-node-tuning-operator performance-patch -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
cmdline=nohz_full=
의 CPU 목록은 하드웨어 구성에 따라 달라집니다.
다음 명령을 실행하여 클러스터 네트워킹 진단이 비활성화되었는지 확인하세요.
oc get networks.operator.openshift.io cluster -o jsonpath='{.spec.disableNetworkDiagnostics}'
$ oc get networks.operator.openshift.io cluster -o jsonpath='{.spec.disableNetworkDiagnostics}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
true
true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kubelet
하우스키핑 간격이 더 느린 속도로 조정되었는지 확인하세요. 이는containerMountNS
머신 구성에서 설정됩니다. 다음 명령을 실행합니다.oc describe machineconfig container-mount-namespace-and-kubelet-conf-master | grep OPENSHIFT_MAX_HOUSEKEEPING_INTERVAL_DURATION
$ oc describe machineconfig container-mount-namespace-and-kubelet-conf-master | grep OPENSHIFT_MAX_HOUSEKEEPING_INTERVAL_DURATION
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Environment="OPENSHIFT_MAX_HOUSEKEEPING_INTERVAL_DURATION=60s"
Environment="OPENSHIFT_MAX_HOUSEKEEPING_INTERVAL_DURATION=60s"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Grafana와
alertManagerMain
이 비활성화되어 있고 Prometheus 보존 기간이 24시간으로 설정되어 있는지 확인하세요.oc get configmap cluster-monitoring-config -n openshift-monitoring -o jsonpath="{ .data.config\.yaml }"
$ oc get configmap cluster-monitoring-config -n openshift-monitoring -o jsonpath="{ .data.config\.yaml }"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 Grafana 및
alertManagerMain
경로가 클러스터에서 발견되지 않는지 확인하세요.oc get route -n openshift-monitoring alertmanager-main
$ oc get route -n openshift-monitoring alertmanager-main
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get route -n openshift-monitoring grafana
$ oc get route -n openshift-monitoring grafana
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 두 쿼리 모두
서버 오류(NotFound)
메시지를 반환해야 합니다.
다음 명령을 실행하여
PerformanceProfile
,Tuned
performance-patch, 워크로드 분할 및 커널 명령줄 인수 각각에 대해 최소 4개의 CPU가예약
되어 있는지 확인하세요.oc get performanceprofile -o jsonpath="{ .items[0].spec.cpu.reserved }"
$ oc get performanceprofile -o jsonpath="{ .items[0].spec.cpu.reserved }"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
0-3
0-3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고작업 부하 요구 사항에 따라 추가로 예약된 CPU를 할당해야 할 수도 있습니다.