전원 모니터링
Red Hat OpenShift의 전원 모니터링 구성 및 사용
초록
1장. Red Hat OpenShift 릴리스 노트의 전원 모니터링
전원 모니터링은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
Red Hat OpenShift의 전원 모니터링을 사용하면 워크로드의 전력 사용량을 모니터링하고 컨테이너 수준에서 측정된 CPU 또는 DRAM과 같은 주요 전력 소비 메트릭(예: CPU 또는 DRAM)을 사용하여 OpenShift Container Platform 클러스터에서 실행되는 가장 전력 소모적인 네임스페이스를 확인할 수 있습니다.
이 릴리스 노트에서는 OpenShift Container Platform에서 Red Hat OpenShift의 전원 모니터링 개발을 추적합니다.
Power Monitoring Operator 에 대한 개요는 전원 모니터링 정보를 참조하십시오.
1.1. 전원 모니터링 0.1 (기술 프리뷰)
이번 릴리스에서는 Red Hat OpenShift에 대한 기술 프리뷰 버전의 전원 모니터링이 도입되었습니다. 다음 권고는 전원 모니터링 0.1에 사용할 수 있습니다.
1.1.1. 기능
- Kepler 배포 및 삭제
- Intel 기반 베어 메탈 배포의 전원 사용량 지표
- 전원 사용량 플로팅 대시보드
2장. 전원 모니터링 개요
전원 모니터링은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
2.1. 전원 모니터링 정보
Red Hat OpenShift에 대한 전원 모니터링을 사용하여 전원 사용량을 모니터링하고 OpenShift Container Platform 클러스터에서 실행되는 전원 소모적인 컨테이너를 식별할 수 있습니다. 전원 모니터링은 CPU 및 DRAM과 같은 다양한 구성 요소에서 에너지 관련 시스템 통계를 수집하고 내보냅니다. Kubernetes Pod, 네임스페이스 및 노드에 대한 세분화된 전원 사용 데이터를 제공합니다.
전원 모니터링 기술 프리뷰는 베어 메탈 배포에서만 작동합니다. 대부분의 퍼블릭 클라우드 벤더는 커널 전원 관리 Cryostat를 가상 머신에 노출하지 않습니다.
2.2. 전원 모니터링 아키텍처
전원 모니터링은 다음과 같은 주요 구성 요소로 구성됩니다.
- Power Monitoring Operator
- 관리자의 경우 Power Monitoring Operator는 OpenShift Container Platform 클러스터에서 Kepler의 배포 및 관리를 단순화하여 워크로드에 대한 전원 사용량 모니터링을 간소화합니다. Kepler CRD(사용자 정의 리소스 정의)를 추가하여 Power Monitoring Operator의 설정 및 구성을 간소화합니다. 또한 Operator는 Kepler 업그레이드, 제거, 구성, 재배포와 같은 작업을 관리합니다.
- Kepler
- Kepler는 전원 모니터링의 핵심 구성 요소입니다. OpenShift Container Platform에서 실행되는 컨테이너의 전원 사용을 모니터링합니다. 노드와 컨테이너의 전원 사용과 관련된 메트릭을 생성합니다.
2.3. Kepler 하드웨어 및 가상화 지원
Kepler는 다음 방법 중 하나로 노드에서 실시간 전력 소비 데이터를 수집하는 전원 모니터링의 핵심 구성 요소입니다.
- 커널 전원 관리 systems (preferred)
-
rapl-sysfs
: 이는/sys/class/powercap/intel-rapl
호스트 파일에 액세스해야 합니다. -
rapl-msr
:/dev/cpu/*/msr
호스트 파일에 액세스해야 합니다.
-
추정
기 전원 소스커널의 전원 제한 하위 시스템에 액세스하지 않고 Kepler는 머신러닝 모델을 사용하여 노드에서 CPU의 전원 사용량을 추정합니다.
주의추정
기 기능은 실험적이지만 지원되지 않으며 의존해서는 안 됩니다.
Power Monitoring / Overview 대시보드를 사용하여 노드의 전원 추정 방법을 식별할 수 있습니다.
2.4. 추가 리소스
3장. Red Hat OpenShift의 전원 모니터링 설치
전원 모니터링은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
OpenShift Container Platform 웹 콘솔에 Power Monitoring Operator를 배포하여 Red Hat OpenShift의 전원 모니터링을 설치할 수 있습니다.
3.1. Power Monitoring Operator 설치
클러스터 관리자는 OpenShift Container Platform 웹 콘솔을 사용하여 OperatorHub에서 Power Monitoring Operator를 설치할 수 있습니다.
설치하기 전에 이전에 설치한 Power 모니터링 Operator 버전을 제거해야 합니다.
사전 요구 사항
- OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
-
cluster-admin
역할의 사용자로 로그인되어 있습니다.
프로세스
- 웹 콘솔의 관리자 화면에서 Operator → OperatorHub 로 이동합니다.
-
전원 모니터링
을 검색하고 Red Hat OpenShift 타일에 대한 전원 모니터링 을 클릭한 다음 설치를 클릭합니다. 설치를 다시 클릭하여 Power monitoring Operator를 설치합니다.
Red Hat OpenShift의 전원 모니터링은 이제 OpenShift Container Platform 클러스터의 모든 네임스페이스에서 사용할 수 있습니다.
검증
- Power monitoring Operator가 Operator → 설치된 Operator 에 나열되어 있는지 확인합니다. 상태가 성공으로 확인되어야 합니다.
3.2. Kepler 배포
Power 모니터링 Operator를 사용하여 Kepler CRD(사용자 정의 리소스 정의) 인스턴스를 생성하여 Kepler
를 배포할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
-
cluster-admin
역할의 사용자로 로그인되어 있습니다. - Power Monitoring Operator를 설치했습니다.
프로세스
- 웹 콘솔의 관리자 화면에서 Operator → 설치된 Operator 로 이동합니다.
- Installed Operators 목록에서 Red Hat OpenShift의 전원 모니터링 을 클릭하고 Kepler 탭으로 이동합니다.
- Create Kepler 를 클릭합니다.
Create Kepler 페이지에서 Name 이
kepler
로 설정되어 있는지 확인합니다.중요Kepler 인스턴스의 이름은
kepler
로 설정해야 합니다. 다른 모든 인스턴스는 Power Monitoring Operator에서 무시합니다.- 생성 을 클릭하여 Kepler 및 전원 모니터링 대시보드를 배포합니다.
4장. 전원 모니터링 구성
전원 모니터링은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
Kepler
리소스는 배포를 구성하고 Kepler 리소스의 상태를 모니터링할 수 있는 Kubernetes CRD(사용자 정의 리소스 정의)입니다.
4.1. Kepler 구성
Kepler 리소스의 spec
필드를 사용하여 Kepler
를 구성할 수 있습니다.
Kepler 인스턴스의 이름이 kepler
인지 확인합니다. 다른 모든 인스턴스는 Power Monitoring Operator에서 무시합니다.
다음은 구성 옵션 목록입니다.
이름 | spec | 설명 | Default |
---|---|---|---|
|
| Prometheus 지표가 노출되는 노드의 포트입니다. |
|
|
| Kepler 내보내기 Pod가 예약된 노드입니다. |
|
|
| 특정 특성이 있는 노드에서 Pod를 예약할 수 있는 Kepler 내보내기에 대한 허용 오차입니다. |
|
기본 구성이 있는 Kepler
리소스의 예
apiVersion: kepler.system.sustainable.computing.io/v1alpha1 kind: Kepler metadata: name: kepler spec: exporter: deployment: port: 9103 1 nodeSelector: kubernetes.io/os: linux 2 Tolerations: 3 - key: "" operator: "Exists" value: "" effect: ""
4.2. Kepler 상태 모니터링
Kepler
리소스의 status
필드를 사용하여 Kepler 내보내기의 상태를 모니터링할 수 있습니다.
status.exporter
필드에는 다음과 같은 정보가 포함됩니다.
- 현재 Kepler Pod를 실행하는 노드 수
- Kepler Pod를 실행해야 하는 노드 수
- Kepler 리소스의 상태를 나타내는 조건
이를 통해 spec
필드를 통한 변경 사항에 대한 중요한 통찰력을 얻을 수 있습니다.
Kepler
리소스의 상태 예
apiVersion: kepler.system.sustainable.computing.io/v1alpha1 kind: Kepler metadata: name: kepler status: exporter: conditions: 1 - lastTransitionTime: '2024-01-11T11:07:39Z' message: Reconcile succeeded observedGeneration: 1 reason: ReconcileSuccess status: 'True' type: Reconciled - lastTransitionTime: '2024-01-11T11:07:39Z' message: >- Kepler daemonset "kepler-operator/kepler" is deployed to all nodes and available; ready 2/2 observedGeneration: 1 reason: DaemonSetReady status: 'True' type: Available currentNumberScheduled: 2 2 desiredNumberScheduled: 2 3
5장. 전원 모니터링 메트릭 시각화
전원 모니터링은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
전원 모니터링 대시보드에 액세스하거나 Observe 탭에서 메트릭을 탐색하여 OpenShift Container Platform 웹 콘솔에서 전원 모니터링 메트릭 을 시각화할 수 있습니다.
5.1. 전원 모니터링 대시보드 개요
전원 모니터링 대시보드에는 두 가지 유형이 있습니다. 둘 다 단일 클러스터의 전원 사용량 지표에 대한 다양한 수준의 세부 정보를 제공합니다.
전원 모니터링 / 개요 대시보드
이 대시보드를 사용하면 다음 정보를 확인할 수 있습니다.
-
이 구성과 함께 CPU 아키텍처 및 해당 전원 소스(
rapl-sysfs
,rapl-msr
또는estimator
)에 대한 집계된 보기 - 지난 24시간 동안 클러스터의 총 에너지 소비(kilowatt-hour)
- 지난 24시간 동안 클러스터에서 상위 10개의 네임스페이스에서 소비되는 전력 양
- CPU 아키텍처 및 구성 요소 전원 소스와 같은 자세한 노드 정보
이러한 기능을 사용하면 각 네임스페이스를 별도로 조사할 필요 없이 클러스터의 에너지 사용량을 효과적으로 모니터링할 수 있습니다.
구성 요소 소스 열에 estimator
가 전원 소스로 표시되지 않는지 확인합니다.
그림 5.1. 구성 요소 전원 소스로 rapl-sysfs
가 포함된 자세한 노드 정보 테이블
Kepler가 하드웨어 전력 소비 메트릭을 가져올 수 없는 경우 구성 요소 소스 열에는 기술 프리뷰에서 지원되지 않는 전원 소스로 추정
기가 표시됩니다. 이 경우 노드의 값이 정확하지 않습니다.
전원 모니터링 / 네임스페이스 대시보드
이 대시보드를 사용하면 네임스페이스 및 Pod별로 메트릭을 볼 수 있습니다. 다음 정보를 확인할 수 있습니다.
- DRAM 및 PKG 소비와 같은 전력 소비 지표
- 코어 및 uncore 구성 요소를 위한 DRAM 및 PKG 소비와 같은 지난 시간 동안의 에너지 소비 지표
이 기능을 사용하면 주요 분기를 조사하고 소비가 높은 주요 근본 원인을 쉽게 식별할 수 있습니다.
5.2. 전원 모니터링 대시보드에 액세스
OpenShift Container Platform 웹 콘솔의 관리자 화면에서 전원 모니터링 대시보드에 액세스할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
-
cluster-admin
역할의 사용자로 로그인되어 있습니다. - Power Monitoring Operator를 설치했습니다.
- 클러스터에 Kepler를 배포했습니다.
- 사용자 정의 프로젝트에 대한 모니터링을 활성화했습니다.
프로세스
- 웹 콘솔의 관리자 화면에서 모니터링 → 대시보드 로 이동합니다.
대시보드 드롭다운 목록에서 표시할 전원 모니터링 대시보드를 선택합니다.
- 전원 모니터링 / 개요
- 전원 모니터링 / 네임스페이스
5.3. 전원 모니터링 지표 개요
Power Monitoring Operator는 Observe → Metrics 탭에서 OpenShift Container Platform 웹 콘솔을 사용하여 볼 수 있는 다음 메트릭을 노출합니다.
노출된 메트릭 목록은 확인되지 않습니다. 메트릭은 향후 릴리스에서 추가되거나 제거될 수 있습니다.
메트릭 이름 | 설명 |
---|---|
| 컨테이너에 의해 CPU, DRAM 및 기타 호스트 구성 요소의 집계된 패키지 또는 소켓 에너지 소비 |
|
컨테이너에서 사용하는 CPU 코어의 총 에너지 소비입니다. 시스템이 |
| 컨테이너에 의한 DRAM의 총 에너지 소비입니다. |
| 컨테이너에서 사용하는 비코어 구성 요소별 누적 에너지 소비입니다. 구성 요소 수는 시스템에 따라 다를 수 있습니다. uncore 지표는 프로세서 모델에 따라 다르며 일부 서버 CPU에서 사용할 수 없습니다. |
| 컨테이너에서 사용하는 CPU 소켓에서 소비한 누적 에너지입니다. 여기에는 모든 코어 및 uncore 구성 요소가 포함됩니다. |
| 컨테이너에서 사용하는 CPU 및 DRAM을 제외한 호스트 구성 요소의 누적 에너지 소비입니다. 일반적으로 이 메트릭은 ACPI 호스트의 에너지 소비입니다. |
| BPF 추적을 사용하는 컨테이너에서 사용하는 총 CPU 시간입니다. |
| 하드웨어 카운터를 활용하는 컨테이너에서 사용하는 총 CPU 사이클입니다. CPU 주기는 CPU 빈도와 직접 관련된 지표입니다. 프로세서가 고정된 빈도로 실행되는 시스템에서는 CPU 사이클과 총 CPU 시간이 거의 동일합니다. 프로세서가 다양한 주파수에서 실행되는 시스템에서 CPU 사이클과 총 CPU 시간은 서로 다릅니다. |
| 하드웨어 카운터를 사용하는 컨테이너에서 사용하는 총 CPU 명령입니다. CPU 명령은 CPU 사용 방법을 설명하는 지표입니다. |
| 하드웨어 카운터를 사용하는 컨테이너에 대해 발생하는 총 캐시 누락입니다. |
| 제어 그룹 통계에서 읽는 컨테이너에서 사용하는 총 CPU 시간입니다. |
| 제어 그룹 통계에서 읽는 컨테이너에서 사용하는 총 메모리(바이트)입니다. |
| 제어 그룹 통계에서 읽는 컨테이너에서 사용하는 커널 공간의 총 CPU 시간입니다. |
| 제어 그룹 통계에서 읽는 컨테이너에서 사용하는 사용자 공간의 총 CPU 시간입니다. |
| BPF 추적을 사용하는 컨테이너의 네트워크 카드에 전송된 총 패킷 수입니다. |
| BPF 추적을 사용하는 컨테이너의 네트워크 카드에서 수신되는 총 패킷 수입니다. |
| BPF 추적을 사용하는 컨테이너의 총 블록 I/O 호출 수입니다. |
| 노드 CPU 아키텍처와 같은 노드 메타데이터입니다. |
| 노드 및 운영 체제에서 실행되는 모든 컨테이너에서 사용하는 CPU 코어의 총 에너지 소비입니다. |
| 노드 및 운영 체제에서 실행되는 모든 컨테이너에서 사용하는 코어당 누적 에너지 소비입니다. 구성 요소 수는 시스템에 따라 다를 수 있습니다. |
| 노드 및 운영 체제에서 실행되는 모든 컨테이너에 의해 DRAM의 총 에너지 소비입니다. |
| 노드 및 운영 체제에서 실행되는 모든 컨테이너에서 사용하는 CPU 소켓에 사용되는 누적 에너지입니다. 여기에는 모든 코어 및 uncore 구성 요소가 포함됩니다. |
| 노드 및 운영 체제에서 실행되는 모든 컨테이너에서 사용하는 CPU 및 DRAM을 제외한 호스트 구성 요소의 누적 에너지 소비입니다. 일반적으로 이 메트릭은 ACPI 호스트의 에너지 소비입니다. |
| 호스트의 총 에너지 소비입니다. 일반적으로 이 메트릭은 Redfish BMC 또는 ACPI의 호스트 에너지 소비입니다. |
| 모델 서버에서 사용되는 컨테이너 리소스 사용률 제어 그룹 지표로 레이블이 지정된 노드의 여러 지표입니다. |
| 특정 노드에서 가속기 Intel QAT 사용 시스템에 Intel QATs가 포함된 경우 Kepler는 Telemetry를 통해 노드의 QAT 사용률을 계산할 수 있습니다. |
5.4. 추가 리소스
6장. 전원 모니터링 설치 제거
전원 모니터링은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
Kepler 인스턴스를 삭제한 다음 OpenShift Container Platform 웹 콘솔에서 Power Monitoring Operator를 삭제하여 전원 모니터링을 제거할 수 있습니다.
6.1. Kepler 삭제
OpenShift Container Platform 웹 콘솔에서 Kepler CRD(사용자 정의 리소스 정의)를 제거하여 Kepler
인스턴스를 삭제할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
-
cluster-admin
역할의 사용자로 로그인되어 있습니다.
프로세스
- 웹 콘솔의 관리자 화면에서 Operator → 설치된 Operator 로 이동합니다.
- Installed Operators 목록에서 Red Hat OpenShift의 전원 모니터링 을 클릭하고 Kepler 탭으로 이동합니다.
- 목록에서 Kepler 인스턴스 항목을 찾습니다.
- 이 항목에 대해 을 클릭하고 Kepler 삭제 를 선택합니다.
- Delete Kepler? 대화 상자에서 삭제 를 클릭하여 Kepler 인스턴스를 삭제합니다.
6.2. Power Monitoring Operator 설치 제거
OperatorHub를 사용하여 Power monitoring Operator를 설치한 경우 OpenShift Container Platform 웹 콘솔에서 해당 Operator를 제거할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 웹 콘솔에 액세스할 수 있습니다.
-
cluster-admin
역할의 사용자로 로그인되어 있습니다.
프로세스
Kepler 인스턴스를 삭제합니다.
주의Power Monitoring Operator를 설치 제거하기 전에 Kepler 인스턴스를 삭제했는지 확인합니다.
- Operator → 설치된 Operator 로 이동합니다.
- 목록에서 Red Hat OpenShift의 전원 모니터링 항목을 찾습니다.
- 이 항목에 대해 를 클릭하고 Operator 설치 제거를 선택합니다.
- Operator 설치 제거? 대화 상자에서 제거를 클릭하여 Power Monitoring Operator를 제거합니다.
Legal Notice
Copyright © 2024 Red Hat, Inc.
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.