8장. 문제 해결 및 디버깅 미터링
미터링은 더 이상 사용되지 않는 기능입니다. 더 이상 사용되지 않는 기능은 여전히 OpenShift Container Platform에 포함되어 있으며 계속 지원됩니다. 그러나 이 기능은 향후 릴리스에서 제거될 예정이므로 새로운 배포에는 사용하지 않는 것이 좋습니다.
OpenShift Container Platform에서 더 이상 사용되지 않거나 삭제된 주요 기능의 최신 목록은 OpenShift Container Platform 릴리스 노트에서 더 이상 사용되지 않고 삭제된 기능 섹션을 참조하십시오.
다음 섹션을 사용하면 미터링과 관련된 특정 문제를 해결하고 디버그하는 데 도움이 됩니다.
이 섹션의 정보 외에도 다음 주제를 검토하십시오.
8.1. 미터링 문제 해결
미터링과 관련된 일반적인 문제는 Pod가 시작되지 않는 것입니다. 리소스가 부족하거나 StorageClass
또는 Secret
리소스와 같이 존재하지 않는 리소스에 대한 종속성이 있는 경우 Pod를 시작하지 못할 수 있습니다.
8.1.1. 컴퓨팅 리소스가 충분하지 않음
미터링을 설치하거나 실행하는 경우 일반적인 문제는 컴퓨팅 리소스의 부족입니다. 클러스터가 증가하고 더 많은 보고서가 생성되면 Reporting Operator Pod에 더 많은 메모리가 필요합니다. 메모리 사용량이 Pod 제한에 도달하면 클러스터에서 OOM(메모리 부족)을 고려하고 OOMKilled
상태로 종료합니다. 미터링에 설치 사전 요구 사항에 설명된 최소 리소스 요구 사항이 할당되어야 합니다.
Metering Operator는 클러스터의 부하를 기반으로 Reporting Operator를 자동 확장하지 않습니다. 따라서 클러스터가 확장되면 Reporting Operator Pod의 CPU 사용량이 늘어나지 않습니다.
리소스 또는 일정 관련 문제가 있는지 확인하려면 Kubernetes 문서 Containers용 컴퓨팅 리소스 관리에 포함된 문제 해결 지침을 따르십시오.
컴퓨팅 리소스가 부족하여 문제를 해결하려면 openshift-metering
네임스페이스에서 다음을 확인합니다.
사전 요구 사항
openshift-metering
네임스페이스에 있어야 합니다. 다음을 실행하여openshift-metering
네임스페이스로 변경합니다.$ oc project openshift-metering
절차
미터링
Report
리소스가 완료되지 않고ReportingPeriodUnmetDependencies의
상태를 표시하는지 확인합니다.$ oc get reports
출력 예
NAME QUERY SCHEDULE RUNNING FAILED LAST REPORT TIME AGE namespace-cpu-utilization-adhoc-10 namespace-cpu-utilization Finished 2020-10-31T00:00:00Z 2m38s namespace-cpu-utilization-adhoc-11 namespace-cpu-utilization ReportingPeriodUnmetDependencies 2m23s namespace-memory-utilization-202010 namespace-memory-utilization ReportingPeriodUnmetDependencies 26s namespace-memory-utilization-202011 namespace-memory-utilization ReportingPeriodUnmetDependencies 14s
NEWEST METRIC
이 보고서 종료일보다 작은ReportDataSource
리소스를 확인합니다.$ oc get reportdatasource
출력 예
NAME EARLIEST METRIC NEWEST METRIC IMPORT START IMPORT END LAST IMPORT TIME AGE ... node-allocatable-cpu-cores 2020-04-23T09:14:00Z 2020-08-31T10:07:00Z 2020-04-23T09:14:00Z 2020-10-15T17:13:00Z 2020-12-09T12:45:10Z 230d node-allocatable-memory-bytes 2020-04-23T09:14:00Z 2020-08-30T05:19:00Z 2020-04-23T09:14:00Z 2020-10-14T08:01:00Z 2020-12-09T12:45:12Z 230d ... pod-usage-memory-bytes 2020-04-23T09:14:00Z 2020-08-24T20:25:00Z 2020-04-23T09:14:00Z 2020-10-09T23:31:00Z 2020-12-09T12:45:12Z 230d
많은 Pod 재시작이 필요한 경우
reporting-operator
Pod
리소스의 상태를 확인합니다.$ oc get pods -l app=reporting-operator
출력 예
NAME READY STATUS RESTARTS AGE reporting-operator-84f7c9b7b6-fr697 2/2 Running 542 8d 1
- 1
- Reporting Operator Pod가 높은 속도로 다시 시작됩니다.
OOMKilled
종료의reporting-operator
Pod
리소스를 확인합니다.$ oc describe pod/reporting-operator-84f7c9b7b6-fr697
출력 예
Name: reporting-operator-84f7c9b7b6-fr697 Namespace: openshift-metering Priority: 0 Node: ip-10-xx-xx-xx.ap-southeast-1.compute.internal/10.xx.xx.xx ... Ports: 8080/TCP, 6060/TCP, 8082/TCP Host Ports: 0/TCP, 0/TCP, 0/TCP State: Running Started: Thu, 03 Dec 2020 20:59:45 +1000 Last State: Terminated Reason: OOMKilled 1 Exit Code: 137 Started: Thu, 03 Dec 2020 20:38:05 +1000 Finished: Thu, 03 Dec 2020 20:59:43 +1000
- 1
- OOM 종료로 인해 Reporting Operator Pod가 종료되었습니다.
reporting-operator Pod 메모리 제한 증가
Pod 재시작이 증가하고 OOM 종료 이벤트가 발생하면 Reporting Operator Pod에 설정된 현재 메모리 제한을 확인할 수 있습니다. 메모리 제한을 늘리면 Reporting Operator Pod에서 보고서 데이터 소스를 업데이트할 수 있습니다. 필요한 경우 MeteringConfig
리소스의 메모리 제한을 25% - 50%까지 늘립니다.
절차
reporting-operator
Pod
리소스의 현재 메모리 제한을 확인합니다.$ oc describe pod reporting-operator-67d6f57c56-79mrt
출력 예
Name: reporting-operator-67d6f57c56-79mrt Namespace: openshift-metering Priority: 0 ... Ports: 8080/TCP, 6060/TCP, 8082/TCP Host Ports: 0/TCP, 0/TCP, 0/TCP State: Running Started: Tue, 08 Dec 2020 14:26:21 +1000 Ready: True Restart Count: 0 Limits: cpu: 1 memory: 500Mi 1 Requests: cpu: 500m memory: 250Mi Environment: ...
- 1
- Reporting Operator Pod의 현재 메모리 제한입니다.
MeteringConfig
리소스를 편집하여 메모리 제한을 업데이트합니다.$ oc edit meteringconfig/operator-metering
MeteringConfig
리소스의 예입니다.kind: MeteringConfig metadata: name: operator-metering namespace: openshift-metering spec: reporting-operator: spec: resources: 1 limits: cpu: 1 memory: 750Mi requests: cpu: 500m memory: 500Mi ...
- 1
MeteringConfig
리소스의resources
필드 내에 메모리 제한을 추가하거나 늘립니다.
참고메모리 제한이 증가한 후에도 수많은 OOM 종료 이벤트가 계속 있는 경우 다른 문제로 인해 보고서가 보류 중임을 나타낼 수 있습니다.
8.1.2. StorageClass 리소스가 구성되지 않음
미터링에는 동적 프로비저닝을 위해 기본 StorageClass
리소스를 구성해야 합니다.
클러스터에 대한 StorageClass
리소스가 구성되어 있는지 확인하는 방법, 기본값을 설정하는 방법, 기본값 이외의 스토리지 클래스를 사용하도록 미터링을 구성하는 방법에 대한 자세한 내용은 미터링 설정 방법에 대한 문서를 참조하십시오.
8.1.3. secret이 올바르게 구성되지 않은 경우
미터링과 관련된 일반적인 문제는 영구 스토리지를 구성할 때 잘못된 시크릿을 제공하는 것입니다. 구성 파일 예제를 검토하고 스토리지 공급자의 지침에 따라 시크릿을 생성하십시오.