Cluster Observability Operator


OpenShift Container Platform 4.16

OpenShift Container Platform에서 Cluster Observability Operator 구성 및 사용

Red Hat OpenShift Documentation Team

초록

Cluster Observability Operator를 사용하여 OpenShift Container Platform에서 관찰 가능 구성 요소를 배포하고 구성합니다.

1장. Cluster Observability Operator 릴리스 노트

COO(Cluster Observability Operator)는 관리자가 다양한 서비스 및 사용자가 사용할 수 있도록 독립적으로 구성할 수 있는 독립 실행형 모니터링 스택을 생성할 수 있는 선택적 OpenShift Container Platform Operator입니다.

COO는 OpenShift Container Platform의 기본 모니터링 기능을 보완합니다. 기본 플랫폼 및 CCMO(Cluster Monitoring Operator)에서 관리하는 사용자 워크로드 모니터링 스택과 병렬로 배포할 수 있습니다.

이 릴리스 노트에서는 OpenShift Container Platform의 Cluster Observability Operator 개발을 추적합니다.

다음 표에서는 Cluster Observability Operator 및 OpenShift Container Platform 버전에 따라 사용 가능한 기능에 대한 정보를 제공합니다.

Expand
COO 버전OCP 버전분산 추적로깅문제 해결 패널ACM 경고사고 탐지

1.1+

4.12 - 4.14

1.1+

4.15

1.1+

4.16 - 4.18

1.2+

4.19+

1.1. Cluster Observability Operator 1.2.2

Cluster Observability Operator 1.2.2에서 다음 권고를 사용할 수 있습니다.

1.1.1. 버그 수정

  • 이번 업데이트 이전에는 사고 탐지 기능 설치가 간헐적으로 실패할 수 있었습니다. 증상에는 사고 탐지 UI가 표시되지만 데이터는 포함하지 않습니다. 또한 health-analyzer ServiceMonitor 리소스가 실패로 표시되고 tls: failed to verify certificate: x509. 이번 릴리스에서는 인시던트 탐지 기능이 올바르게 설치됩니다. (COO-1062)

    버그가 발생한 1.2.1에서 업그레이드하는 경우 문제를 해결하려면 모니터링 UI 플러그인을 다시 생성해야 합니다.

1.1.2. 확인된 문제

이는 Cluster Observability Operator 1.2.2에서 알려진 문제입니다.

  • 버전 1.2.2를 설치하거나 버전 1.2.0에서 업그레이드할 때 모니터링 플러그인의 UIPlugin 리소스가 손상될 수 있습니다. 이는 모니터링 UI 플러그인과 함께 분산 추적, 문제 해결 패널 및 ACM(Advanced Cluster Management)도 배포한 경우에 발생합니다. UI 플러그인을 다시 생성하여 이 문제를 해결할 수 있습니다. (COO-1051)

    이전에 1.2.1에서 문제를 해결한 후 1.2.2로 업그레이드하면 이 문제가 다시 발생하지 않습니다.

1.2. Cluster Observability Operator 1.2.1

Cluster Observability Operator 1.2.1에 대해 다음 권고를 사용할 수 있습니다.

1.2.1. 버그 수정

  • 이번 업데이트 이전에는 Operator 버전 1.2 업그레이드 중에 이전 버전 레이블 matcher가 유지되었습니다. 이로 인해 Perses 대시보드를 사용할 수 없게 되었습니다. 이번 릴리스에서는 버전 레이블이 제거되고 Perses 대시보드가 올바르게 조정됩니다.

1.2.2. 확인된 문제

이는 Cluster Observability Operator 1.2.1에서 알려진 문제입니다.

  • 사고 탐지 기능의 설치는 간헐적으로 실패할 수 있습니다. 증상에는 사고 탐지 UI가 표시되지만 데이터는 포함하지 않습니다. 또한 health-analyzer ServiceMonitor 리소스가 실패로 표시되고 tls: failed to verify certificate: x509. 1.2.2로 업그레이드하고 모니터링 UI 플러그인을 다시 생성하여 이 문제를 해결할 수 있습니다. (COO-1062)
  • 버전 1.2.1을 설치하거나 버전 1.2.0에서 업그레이드할 때 모니터링 플러그인의 UIPlugin 리소스가 손상될 수 있습니다. 이는 모니터링 UI 플러그인과 함께 분산 추적, 문제 해결 패널 및 ACM(Advanced Cluster Management)도 배포한 경우에 발생합니다. UI 플러그인을 다시 생성하여 이 문제를 해결할 수 있습니다. (COO-1051)

1.3. Cluster Observability Operator 1.2

다음 권고 사항은 Cluster Observability Operator 1.2에 대해 제공됩니다.

1.3.1. 새로운 기능 및 개선 사항

  • 로깅 UI 플러그인은 이전에 지원되는 ViaQ 체계 외에 OTEL 형식을 지원합니다. (COO-816)
  • 모니터링 UI 플러그인을 설치할 때 액셀러레이터 대시보드는 기본적으로 배포됩니다. (COO-942)
  • 이제 Korrel8r에 그래프 노드당 여러 결과가 표시됩니다. (COO-785)
  • 이제 별도의 사고 탐지 패널에서 직접 탐색이 지원되므로 RHACM(Red Hat Advanced Cluster Management) 2.14의 사고 개요 기능이 활성화됩니다. (COO-977, ACM-18751)
  • 추적 뷰에 고급 필터가 추가되었습니다. (COO-979)
  • 분산 추적 UI 플러그인의 상태는 이제 GA(General Availability)로, Patternfly 4, 5 및 6을 지원합니다. (COO-873)

1.3.2. 버그 수정

  • 이전에는 LokiStack이 로깅 UI 플러그인을 설치하기 위한 사전 요구 사항이었습니다. 이번 릴리스에서는 LokiStack 없이 로깅 UI 플러그인을 설치할 수 있습니다. (COO-760)
  • 이전에는 IncidentsComponent 섹션의 음소거 경고 버튼이 필드를 미리 채워지지 않았으며 사용할 수 없었습니다. 이 릴리스에서는 이 문제가 해결되었습니다. (COO-970)

1.3.3. 확인된 문제

이는 Cluster Observability Operator 1.2.0에서 알려진 문제입니다.

  • COO 1.1.1에서 COO 1.2로 업그레이드할 때 Perses 대시보드가 올바르게 조정되지 않으므로 모니터링 UI 플러그인을 다시 설치해야 합니다. (COO-978)

1.4. Cluster Observability Operator 1.1.1

1.4.1. 버그 수정

  • 이전 버전에서는 Cluster Observability Operator 1.0에서 업그레이드한 후 많은 클러스터의 observability-operatorperses-operator Pod에 OutOfMemory 오류로 인해 CrashLoopBackOff 상태가 표시되었습니다. 이 릴리스에서는 이 문제가 해결되었습니다. (COO-784)

1.5. Cluster Observability Operator 1.1

다음 권고 사항은 Cluster Observability Operator 1.1에 대해 제공됩니다.

1.5.1. 새로운 기능 및 개선 사항

  • 이제 COO를 사용하여 모니터링 UI 플러그인을 설치할 수 있습니다. (COO-262)
  • Thanos 웹 엔드포인트에 대한 TLS 지원이 추가되었습니다. (COO-222)

1.5.2. 확인된 문제

이는 Cluster Observability Operator 1.1.0에서 알려진 문제입니다.

1.5.3. 버그 수정

  • 이전에는 로깅 UI 플러그인에서 사용자 정의 LokiStack 이름 또는 네임스페이스 설정을 지원하지 않았습니다. 이 릴리스에서는 이 문제가 해결되었습니다. (COO-332)

1.6. Cluster Observability Operator 1.0

1.6.1. 새로운 기능 및 개선 사항

  • OpenShift Container Platform 플랫폼 모니터링에 대해 COO가 활성화됩니다. (COO-476)

    • COO 웹 서버에 대한 HTTPS 지원을 구현합니다. (COO-480)
    • COO 웹 서버에 대한 authn/authz를 구현합니다. (COO-481)
    • COO에서 지표를 수집하도록 ServiceMonitor 리소스를 구성합니다. (COO-482)
    • operatorframework.io/cluster-monitoring=true 주석을 OLM 번들에 추가합니다. (COO-483)
    • COO에 대한 경고 전략을 정의합니다. (COO-484)
    • 경고에 대해 PrometheusRule을 구성합니다. (COO-485)
  • 생성 시 지원 수준 주석이 UIPlugin CR에 추가되었습니다. 지원 수준은 DevPreview,TechPreview 또는 GeneralAvailability 의 값이 있는 플러그인 유형을 기반으로 합니다. (COO-318)
  • Prometheus CR에서 Alertmanager schemetlsConfig 필드를 구성할 수 있습니다. (COO-219)
  • 문제 해결 패널에 대한 확장된 기술 프리뷰는 Kubernetes 리소스와 추적을 비교하고 로그, 경고, 지표 및 네트워크 이벤트를 포함하여 다른 관찰 가능한 신호와 직접 관련된 지원을 추가합니다. (COO-450)

    • 웹 콘솔에서 모니터링 → 추적을 클릭하여 추적 페이지로 이동할 때 Tempo 인스턴스 및 테넌트를 선택할 수 있습니다. 프리뷰 문제 해결 패널은 openshift-tracing / platform 인스턴스 및 platform 테넌트에서만 작동합니다.
    • 문제 해결 패널은 관리자 화면에서 가장 잘 작동합니다. 일부 백엔드의 권한 부여 문제, 특히 메트릭 및 경고에 대한 Prometheus로 인해 개발자 화면에서 기능이 제한됩니다. 이 문제는 향후 릴리스에서 해결될 예정입니다.

다음 표에서는 Cluster Observability Operator 및 OpenShift Container Platform 버전에 따라 사용 가능한 기능에 대한 정보를 제공합니다.

Expand
COO 버전OCP 버전분산 추적로깅문제 해결 패널

1.0

4.12 - 4.15

1.0

4.16+

1.6.2. CVE

1.6.3. 버그 수정

  • 이전에는 COO 설치의 기본 네임스페이스가 openshift-operators 였습니다. 이번 릴리스에서는 defaullt 네임스페이스가 openshift-cluster-observability-operator 로 변경됩니다. (COO-32)
  • 이전에는 korrel8r 에서 시계열 선택기 표현식만 구문 분석할 수 있었습니다. 이번 릴리스에서는 korrel8r 유효한 PromQL 표현식을 구문 분석하여 상관 관계에 사용하는 시계열 선택기를 추출할 수 있습니다. (COO-558)
  • 이전 버전에서는 Distributed Tracing UI 플러그인에서 Tempo 인스턴스를 볼 때 추적 기간을 보여주는 분산형 플롯 그래프가 올바르게 렌더링되지 않았습니다. 크기가 너무 커서 x 및 y 축이 겹쳤습니다. 이번 릴리스에서는 그래프가 올바르게 렌더링됩니다. (COO-319)

1.7. 이전 기술 프리뷰 릴리스에서 사용 가능한 기능

다음 표에서는 이전 버전의 Cluster Observability Operator 및 OpenShift Container Platform에 따라 사용 가능한 기능에 대한 정보를 제공합니다.

Expand
COO 버전OCP 버전대시보드분산 추적로깅문제 해결 패널

0.2.0

4.11

0.3.0+, 0.4.0+

4.11 - 4.15

0.3.0+, 0.4.0+

4.16+

1.8. Cluster Observability Operator 0.4.1

Cluster Observability Operator 0.4.1에 대해 다음 권고를 사용할 수 있습니다.

1.8.1. 새로운 기능 및 개선 사항

  • Prometheus 및 Alertmanager에 대한 WebTLS를 구성할 수 있습니다.

1.8.2. CVE

1.8.3. 버그 수정

  • 이전에는 대시보드 UI 플러그인을 삭제할 때 consoles.operator.openshift.io 리소스에 console-dashboards-plugin 이 포함되어 있었습니다. 이 릴리스에서는 이 문제가 해결되었습니다. (COO-152)
  • 이전에는 웹 콘솔에 Red Hat COO의 올바른 아이콘이 표시되지 않았습니다. 이 릴리스에서는 이 문제가 해결되었습니다. (COO-353)
  • 이전에는 웹 콘솔에서 COO를 설치할 때 지원 섹션에 잘못된 링크가 포함되어 있었습니다. 이 릴리스에서는 이 문제가 해결되었습니다. (COO-354)
  • 이전에는 COO의 CSV(클러스터 서비스 버전)가 비공식 버전의 문서에 연결되어 있었습니다. 이 릴리스에서는 이 문제가 해결되었습니다. (COO-356)

1.9. Cluster Observability Operator 0.4.0

Cluster Observability Operator 0.4.0에서 다음 권고를 사용할 수 있습니다.

1.9.1. 새로운 기능 및 개선 사항

1.9.1.1. UI 플러그인 문제 해결
  • 이제 특정 시작 신호를 선택하고 집중할 수 있도록 문제 해결 UI 패널이 개선되었습니다.
  • 깊이를 선택하는 옵션과 함께 Korrel8r 쿼리를 더 잘 파악할 수 있습니다.
  • OpenShift Container Platform 버전 4.17 이상 사용자는 Application Launcher app launcher 에서 문제 해결 UI 패널에 액세스할 수 있습니다. 또는 4.16 이상 버전에서 모니터링경고를 클릭하여 웹 콘솔에서 액세스할 수 있습니다.

자세한 내용은 UI 플러그인 문제 해결을 참조하십시오.

1.9.1.2. 분산 추적 UI 플러그인
  • 분산 추적 UI 플러그인이 개선되었으며 Gantt 차트를 통해 추적을 탐색할 수 있습니다.

자세한 내용은 분산 추적 UI 플러그인 을 참조하십시오.

1.9.2. 버그 수정

  • 이전에는 모니터링로그를 클릭하여 웹 콘솔의 개발자 화면에서 액세스할 때 일반 사용자가 메트릭을 사용할 수 없었습니다. 이 릴리스에서는 이 문제가 해결되었습니다. (COO-288)
  • 이전에는 문제 해결 UI 플러그인에서 네트워크 관찰 기능에 잘못된 필터를 사용했습니다. 이 릴리스에서는 이 문제가 해결되었습니다. (COO-299)
  • 이전에는 문제 해결 UI 플러그인에서 Pod 레이블 검색에 잘못된 URL을 생성했습니다. 이 릴리스에서는 이 문제가 해결되었습니다. (COO-298)
  • 이전에는 Distributed tracing UI 플러그인에 권한 부여 취약점이 있었습니다. 이번 릴리스에서는 이 문제가 해결되었으며 Distributed tracing UI 플러그인이 다중 테넌트 TempoStackTempoMonolithic 인스턴스만 사용하여 강화되었습니다.

1.10. Cluster Observability Operator 0.3.2

Cluster Observability Operator 0.3.2에서 다음 권고를 사용할 수 있습니다.

1.10.1. 새로운 기능 및 개선 사항

  • 이번 릴리스에서는 MonitoringStack 구성 요소와 함께 허용 오차 및 노드 선택기를 사용할 수 있습니다.

1.10.2. 버그 수정

  • 이전에는 특정 버전의 OpenShift Container Platform에 설치할 때 로깅 UIPlugin이 Available 상태가 아니며 로깅 Pod가 생성되지 않았습니다. 이 릴리스에서는 이 문제가 해결되었습니다. (COO-260)

1.11. Cluster Observability Operator 0.3.0

Cluster Observability Operator 0.3.0에서 다음 권고를 사용할 수 있습니다.

1.11.1. 새로운 기능 및 개선 사항

  • 이번 릴리스에서는 Cluster Observability Operator가 향후 OpenShift Container Platform 관찰 기능 UI 플러그인 및 관찰 기능 구성 요소에 대한 백엔드 지원을 추가합니다.

1.12. Cluster Observability Operator 0.2.0

Cluster Observability Operator 0.2.0에서 다음 권고를 사용할 수 있습니다.

1.12.1. 새로운 기능 및 개선 사항

  • 이번 릴리스에서는 Cluster Observability Operator에서 OpenShift Container Platform 웹 콘솔 UI(사용자 인터페이스)의 관찰 기능 관련 플러그인 설치 및 관리를 지원합니다. (COO-58)

1.13. Cluster Observability Operator 0.1.3

Cluster Observability Operator 0.1.3에서 다음 권고를 사용할 수 있습니다.

1.13.1. 버그 수정

  • 이전 버전에서는 http://<prometheus_url>:9090/graph 에서 Prometheus 웹 사용자 인터페이스(UI)에 액세스하려고 하면 Error opening React index.html: open web/ui/static/react/index.html: no such file or directory. 이번 릴리스에서는 이 문제가 해결되어 Prometheus 웹 UI가 올바르게 표시됩니다. (COO-34)

1.14. Cluster Observability Operator 0.1.2

Cluster Observability Operator 0.1.2에서 다음 권고를 사용할 수 있습니다.

1.14.1. CVE

1.14.2. 버그 수정

  • 이전에는 특정 CSV(클러스터 서비스 버전) 주석이 COO의 메타데이터에 포함되지 않았습니다. 이러한 누락된 주석으로 인해 특정 COO 기능 및 기능이 패키지 매니페스트 또는 OperatorHub 사용자 인터페이스에 표시되지 않았습니다. 이번 릴리스에서는 누락된 주석이 추가되어 이 문제를 해결합니다. (COO-11)
  • 이전에는 COO의 자동 업데이트가 작동하지 않았으며 최신 버전의 Operator가 OperatorHub에서 최신 버전을 사용할 수 있더라도 이전 버전을 자동으로 대체하지 않았습니다. 이 릴리스에서는 이 문제가 해결되었습니다. (COO-12)
  • 이전에는 Thanos Querier가 127.0.0.1(localhost)의 포트 9090에서만 네트워크 트래픽을 수신 대기했습니다. 이로 인해 Thanos Querier 서비스에 도달하려고 하면 502 Bad Gateway 오류가 발생했습니다. 이번 릴리스에서는 구성 요소가 이제 기본 포트(10902)에서 수신 대기하도록 Thanos Querier 구성이 업데이트되어 문제를 해결합니다. 이러한 변경으로 인해 이제 서버 측 적용(SSA)을 통해 포트를 수정하고 필요한 경우 프록시 체인을 추가할 수도 있습니다. (COO-14)

1.15. Cluster Observability Operator 0.1.1

Cluster Observability Operator 0.1.1에 대해 다음 권고를 사용할 수 있습니다.

1.15.1. 새로운 기능 및 개선 사항

이번 릴리스에서는 제한된 네트워크 또는 연결이 끊긴 환경에서 Operator 설치를 지원하도록 Cluster Observability Operator를 업데이트합니다.

1.16. Cluster Observability Operator 0.1

이번 릴리스에서는 OperatorHub에서 Cluster Observability Operator의 기술 프리뷰 버전을 사용할 수 있습니다.

2장. Cluster Observability Operator 개요

COO(Cluster Observability Operator)는 고도의 사용자 지정 모니터링 스택을 생성하고 관리하기 위해 설계된 OpenShift Container Platform의 선택적 구성 요소입니다. 이를 통해 클러스터 관리자는 기본 OpenShift Container Platform 모니터링 시스템에 비해 각 네임스페이스에 대한 보다 맞춤화되고 자세한 보기를 제공하여 모니터링 요구 사항을 광범위하게 자동화할 수 있습니다.

COO는 다음 모니터링 구성 요소를 배포합니다.

  • Prometheus - 원격 쓰기를 사용하여 외부 엔드포인트에 지표를 보낼 수 있는 고가용성 Prometheus 인스턴스입니다.
  • Thanos Querier (선택 사항) - 중앙 위치에서 Prometheus 인스턴스 쿼리를 활성화합니다.
  • Alertmanager (선택 사항) - 다양한 서비스에 대한 경고 구성 기능을 제공합니다.
  • UI 플러그인 (선택 사항) - 모니터링, 로깅, 분산 추적 및 문제 해결을 위한 플러그인으로 관찰 기능 강화
  • Korrel8r (선택 사항) - 오픈 소스 Korrel8r 프로젝트에 의해 구동되는 관찰 가능성 신호 상관 관계를 제공합니다.

2.1. COO 기본 모니터링 스택 비교

COO 구성 요소는 기본 클러스터 내부 모니터링 스택과 독립적으로 작동합니다. 이 스택은 CCMO(Cluster Monitoring Operator)에서 배포 및 관리합니다. 두 Operator에서 배포한 스택 모니터링은 충돌하지 않습니다. CMO에서 배포한 기본 플랫폼 모니터링 구성 요소 외에도 COO 모니터링 스택을 사용할 수 있습니다.

COO와 기본 클러스터 내 모니터링 스택의 주요 차이점은 다음 표에 표시되어 있습니다.

Expand
기능COO기본 모니터링 스택

범위 및 통합

클러스터 및 워크로드 성능을 다루는 엔터프라이즈급 요구 사항에 대한 포괄적인 모니터링 및 분석을 제공합니다.

그러나 OpenShift Container Platform과 직접 통합되지 않으며 일반적으로 대시보드를 위해 외부 Grafana 인스턴스가 필요합니다.

클러스터 내의 핵심 구성 요소(예: API 서버 및 etcd, OpenShift별 네임스페이스)로 제한됩니다.

콘솔에 콘솔 대시보드 및 경고 관리를 포함하여 OpenShift Container Platform과 긴밀하게 통합됩니다.

구성 및 사용자 정의

데이터 보존 기간, 스토리지 방법 및 수집된 데이터 유형을 포함한 광범위한 구성 옵션.

COO는 SSA(Server-Side Apply)를 사용하여 사용자 지정 리소스에 있는 단일 구성 가능한 필드의 소유권을 사용자에게 위임할 수 있습니다.

제한된 사용자 지정 옵션이 포함된 기본 제공 구성입니다.

데이터 보존 및 스토리지

장기 데이터 보존, 기록 분석 및 용량 계획 지원

데이터 보존 시간이 단축되어 단기 모니터링 및 실시간 탐지에 중점을 둡니다.

2.2. COO 사용의 주요 이점

COO를 배포하면 기본 모니터링 스택을 사용하기 어려운 모니터링 요구 사항을 해결할 수 있습니다.

2.2.1. 확장성

  • COO 배포 모니터링 스택에 메트릭을 추가할 수 있습니다. 이는 지원을 손실하지 않고 핵심 플랫폼 모니터링에서는 불가능합니다.
  • 페더레이션을 통해 코어 플랫폼 모니터링에서 클러스터별 메트릭을 수신할 수 있습니다.
  • COO는 추세 예측 및 변칙 탐지와 같은 고급 모니터링 시나리오를 지원합니다.

2.2.2. 멀티 테넌시 지원

  • 사용자 네임스페이스당 모니터링 스택을 생성할 수 있습니다.
  • 네임스페이스당 여러 스택을 배포하거나 여러 네임스페이스에 대해 단일 스택을 배포할 수 있습니다.
  • COO를 사용하면 다른 팀에 대한 경고 및 수신자를 독립적으로 구성할 수 있습니다.

2.2.3. 확장성

  • 단일 클러스터에서 여러 모니터링 스택을 지원합니다.
  • 수동 샤딩을 통해 대규모 클러스터의 모니터링을 활성화합니다.
  • 메트릭이 단일 Prometheus 인스턴스의 기능을 초과하는 경우를 해결합니다.

2.2.4. 유연성

  • OpenShift Container Platform 릴리스 사이클과 분리되었습니다.
  • 릴리스 반복 속도가 빨라지고 변화하는 요구 사항에 신속하게 대응합니다.
  • 경고 규칙에 대한 독립적인 관리

2.3. COO 대상 사용자

COO는 특히 복잡한 멀티 테넌트 엔터프라이즈 환경에서 사용자 정의 기능, 확장성 및 장기 데이터 보존이 필요한 사용자에게 이상적입니다.

2.3.1. 엔터프라이즈급 사용자 및 관리자

엔터프라이즈 사용자에게는 고급 성능 분석, 장기 데이터 보존, 추세 예측 및 기록 분석을 포함하여 OpenShift Container Platform 클러스터에 대한 심층적인 모니터링 기능이 필요합니다. 이러한 기능을 통해 기업은 리소스 사용량을 더 잘 이해하고 성능 문제를 방지하며 리소스 할당을 최적화할 수 있습니다.

2.3.2. 멀티 테넌트 환경의 운영 팀

COO를 사용하면 멀티 테넌시 지원을 통해 다른 팀이 프로젝트 및 애플리케이션에 대한 모니터링 보기를 구성할 수 있으므로 유연한 모니터링 요구 사항이 있는 팀에 적합합니다.

2.3.3. 개발 및 운영 팀

COO는 개발 및 작업 중에 심층적인 문제 해결, 변칙 감지 및 성능 튜닝을 위해 세분화된 모니터링 및 사용자 지정 관찰 기능을 제공합니다.

2.4. Server-Side Apply를 사용하여 Prometheus 리소스 사용자 정의

server-Side Apply는 Kubernetes 리소스를 공동으로 관리할 수 있는 기능입니다. 컨트롤 플레인은 다양한 사용자와 컨트롤러가 Kubernetes 오브젝트 내에서 필드를 관리하는 방법을 추적합니다. 필드 관리자의 개념을 소개하고 필드의 소유권을 추적합니다. 이 중앙 집중식 제어는 충돌 감지 및 해결을 제공하며 의도하지 않은 덮어쓰기의 위험을 줄입니다.

Client-Side Apply와 비교하면 더 선언적이며 마지막으로 적용된 상태가 아니라 필드 관리를 추적합니다.

server-Side 적용
삭제하고 다시 생성할 필요 없이 리소스의 상태를 업데이트하여 선언적 구성 관리.
필드 관리
사용자는 다른 필드에 영향을 주지 않고 업데이트할 리소스의 필드를 지정할 수 있습니다.
관리형 필드
Kubernetes는 메타데이터 내의 managedFields 필드에 있는 각 오브젝트 필드를 관리하는 사용자에 대한 메타데이터를 저장합니다.
충돌
여러 관리자가 동일한 필드를 수정하려고 하면 충돌이 발생합니다. applier는 관리를 덮어쓰거나, 리클립싱(relinquish)하거나, 관리하도록 선택할 수 있습니다.
병합 전략
server-Side Apply는 작업자를 관리하는 작업자에 따라 병합 필드를 적용합니다.

프로세스

  1. 다음 구성을 사용하여 MonitoringStack 리소스를 추가합니다.

    MonitoringStack 오브젝트의 예

    apiVersion: monitoring.rhobs/v1alpha1
    kind: MonitoringStack
    metadata:
      labels:
        coo: example
      name: sample-monitoring-stack
      namespace: coo-demo
    spec:
      logLevel: debug
      retention: 1d
      resourceSelector:
        matchLabels:
          app: demo
    Copy to Clipboard Toggle word wrap

  2. sample-monitoring-stack 이라는 Prometheus 리소스는 coo-demo 네임스페이스에 생성됩니다. 다음 명령을 실행하여 생성된 Prometheus 리소스의 관리형 필드를 검색합니다.

    $ oc -n coo-demo get Prometheus.monitoring.rhobs -oyaml --show-managed-fields
    Copy to Clipboard Toggle word wrap

    출력 예

    managedFields:
    - apiVersion: monitoring.rhobs/v1
      fieldsType: FieldsV1
      fieldsV1:
        f:metadata:
          f:labels:
            f:app.kubernetes.io/managed-by: {}
            f:app.kubernetes.io/name: {}
            f:app.kubernetes.io/part-of: {}
          f:ownerReferences:
            k:{"uid":"81da0d9a-61aa-4df3-affc-71015bcbde5a"}: {}
        f:spec:
          f:additionalScrapeConfigs: {}
          f:affinity:
            f:podAntiAffinity:
              f:requiredDuringSchedulingIgnoredDuringExecution: {}
          f:alerting:
            f:alertmanagers: {}
          f:arbitraryFSAccessThroughSMs: {}
          f:logLevel: {}
          f:podMetadata:
            f:labels:
              f:app.kubernetes.io/component: {}
              f:app.kubernetes.io/part-of: {}
          f:podMonitorSelector: {}
          f:replicas: {}
          f:resources:
            f:limits:
              f:cpu: {}
              f:memory: {}
            f:requests:
              f:cpu: {}
              f:memory: {}
          f:retention: {}
          f:ruleSelector: {}
          f:rules:
            f:alert: {}
          f:securityContext:
            f:fsGroup: {}
            f:runAsNonRoot: {}
            f:runAsUser: {}
          f:serviceAccountName: {}
          f:serviceMonitorSelector: {}
          f:thanos:
            f:baseImage: {}
            f:resources: {}
            f:version: {}
          f:tsdb: {}
      manager: observability-operator
      operation: Apply
    - apiVersion: monitoring.rhobs/v1
      fieldsType: FieldsV1
      fieldsV1:
        f:status:
          .: {}
          f:availableReplicas: {}
          f:conditions:
            .: {}
            k:{"type":"Available"}:
              .: {}
              f:lastTransitionTime: {}
              f:observedGeneration: {}
              f:status: {}
              f:type: {}
            k:{"type":"Reconciled"}:
              .: {}
              f:lastTransitionTime: {}
              f:observedGeneration: {}
              f:status: {}
              f:type: {}
          f:paused: {}
          f:replicas: {}
          f:shardStatuses:
            .: {}
            k:{"shardID":"0"}:
              .: {}
              f:availableReplicas: {}
              f:replicas: {}
              f:shardID: {}
              f:unavailableReplicas: {}
              f:updatedReplicas: {}
          f:unavailableReplicas: {}
          f:updatedReplicas: {}
      manager: PrometheusOperator
      operation: Update
      subresource: status
    Copy to Clipboard Toggle word wrap

  3. metadata.managedFields 값을 확인하고, 메타데이터사양 의 일부 필드가 MonitoringStack 리소스에서 관리되는지 확인합니다.
  4. MonitoringStack 리소스에서 제어하지 않는 필드를 수정합니다.

    1. MonitoringStack 리소스에서 설정하지 않은 필드인 spec.enforcedSampleLimit 를 변경합니다. prom-spec-edited.yaml 파일을 생성합니다.

      prom-spec-edited.yaml

      apiVersion: monitoring.rhobs/v1
      kind: Prometheus
      metadata:
        name: sample-monitoring-stack
        namespace: coo-demo
      spec:
        enforcedSampleLimit: 1000
      Copy to Clipboard Toggle word wrap

    2. 다음 명령을 실행하여 YAML을 적용합니다.

      $ oc apply -f ./prom-spec-edited.yaml --server-side
      Copy to Clipboard Toggle word wrap
      참고

      --server-side 플래그를 사용해야 합니다.

    3. 변경된 Prometheus 오브젝트를 가져오고 managedFieldsspec.enforcedSampleLimit 이 있는 섹션이 하나 더 있음을 확인합니다.

      $ oc get prometheus -n coo-demo
      Copy to Clipboard Toggle word wrap

      출력 예

      managedFields: 
      1
      
      - apiVersion: monitoring.rhobs/v1
        fieldsType: FieldsV1
        fieldsV1:
          f:metadata:
            f:labels:
              f:app.kubernetes.io/managed-by: {}
              f:app.kubernetes.io/name: {}
              f:app.kubernetes.io/part-of: {}
          f:spec:
            f:enforcedSampleLimit: {} 
      2
      
        manager: kubectl
        operation: Apply
      Copy to Clipboard Toggle word wrap

      1
      managedFields
      2
      spec.enforcedSampleLimit
  5. MonitoringStack 리소스에서 관리하는 필드를 수정합니다.

    1. 다음 YAML 구성을 사용하여 MonitoringStack 리소스에서 관리하는 필드인 spec.LogLevel 을 변경합니다.

      # changing the logLevel from debug to info
      apiVersion: monitoring.rhobs/v1
      kind: Prometheus
      metadata:
        name: sample-monitoring-stack
        namespace: coo-demo
      spec:
        logLevel: info 
      1
      Copy to Clipboard Toggle word wrap
      1
      spec.logLevel 추가
    2. 다음 명령을 실행하여 YAML을 적용합니다.

      $ oc apply -f ./prom-spec-edited.yaml --server-side
      Copy to Clipboard Toggle word wrap

      출력 예

      error: Apply failed with 1 conflict: conflict with "observability-operator": .spec.logLevel
      Please review the fields above--they currently have other managers. Here
      are the ways you can resolve this warning:
      * If you intend to manage all of these fields, please re-run the apply
        command with the `--force-conflicts` flag.
      * If you do not intend to manage all of the fields, please edit your
        manifest to remove references to the fields that should keep their
        current managers.
      * You may co-own fields by updating your manifest to match the existing
        value; in this case, you'll become the manager if the other manager(s)
        stop managing the field (remove it from their configuration).
      See https://kubernetes.io/docs/reference/using-api/server-side-apply/#conflicts
      Copy to Clipboard Toggle word wrap

    3. spec.logLevel 필드는 observability-operator 에서 이미 관리하므로 Server-Side Apply를 사용하여 변경할 수 없습니다.
    4. --force-conflicts 플래그를 사용하여 변경 사항을 강제 적용합니다.

      $ oc apply -f ./prom-spec-edited.yaml --server-side --force-conflicts
      Copy to Clipboard Toggle word wrap

      출력 예

      prometheus.monitoring.rhobs/sample-monitoring-stack serverside-applied
      Copy to Clipboard Toggle word wrap

      --force-conflicts 플래그를 사용하면 필드를 강제로 변경할 수 있지만 동일한 필드가 MonitoringStack 리소스에서도 관리되므로 Observability Operator는 변경 사항을 감지하고 MonitoringStack 리소스에서 설정한 값으로 되돌립니다.

      참고

      MonitoringStack 리소스에서 생성한 일부 Prometheus 필드는 MonitoringStack 사양 스탠자의 필드(예: logLevel )의 영향을 받습니다. 이는 MonitoringStack 사양 을 변경하여 변경할 수 있습니다.

    5. Prometheus 오브젝트에서 logLevel 을 변경하려면 다음 YAML을 적용하여 MonitoringStack 리소스를 변경합니다.

      apiVersion: monitoring.rhobs/v1alpha1
      kind: MonitoringStack
      metadata:
        name: sample-monitoring-stack
        labels:
          coo: example
      spec:
        logLevel: info
      Copy to Clipboard Toggle word wrap
    6. 변경 사항이 수행되었는지 확인하려면 다음 명령을 실행하여 로그 수준을 쿼리합니다.

      $ oc -n coo-demo get Prometheus.monitoring.rhobs -o=jsonpath='{.items[0].spec.logLevel}'
      Copy to Clipboard Toggle word wrap

      출력 예

      info
      Copy to Clipboard Toggle word wrap

참고
  1. 새 버전의 Operator가 이전에 액터에 의해 생성 및 제어되는 필드를 생성하면 액터에 의해 설정된 값이 재정의됩니다.

    예를 들어 MonitoringStack 리소스에서 생성하지 않는 enforcedSampleLimit 필드를 관리하고 있습니다. Observability Operator가 업그레이드되고 새 버전의 Operator가 enforcedSampleLimit 에 대한 값을 생성하는 경우 이전에 설정한 값을 덮어씁니다.

  2. MonitoringStack 리소스에서 생성한 Prometheus 오브젝트에는 모니터링 스택에서 명시적으로 설정하지 않은 일부 필드가 포함될 수 있습니다. 이러한 필드는 기본값이 있기 때문에 나타납니다.

3장. Cluster Observability Operator 설치

클러스터 관리자는 OpenShift Container Platform 웹 콘솔을 사용하여 OperatorHub에서 Cluster Observability Operator (COO)를 설치하거나 제거할 수 있습니다. OperatorHub는 클러스터에 Operator를 설치하고 관리하는 OLM(Operator Lifecycle Manager)과 함께 작동하는 사용자 인터페이스입니다.

3.1. 웹 콘솔에서 Cluster Observability Operator 설치

OpenShift Container Platform 웹 콘솔을 사용하여 OperatorHub에서 Cluster Observability Operator (COO)를 설치합니다.

사전 요구 사항

  • cluster-admin 클러스터 역할의 사용자로 클러스터에 액세스할 수 있습니다.
  • OpenShift Container Platform 웹 콘솔에 로그인했습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에서 OperatorOperatorHub를 클릭합니다.
  2. 키워드로 필터링 상자에 cluster observability Operator 를 입력합니다.
  3. 결과 목록에서 Cluster Observability Operator 를 클릭합니다.
  4. Operator에 대한 정보를 읽고 다음 설치 설정을 구성합니다.

    • 업데이트 채널stable
    • 버전1.0.0 이상
    • 설치 모드클러스터의 모든 네임스페이스(기본값)
    • 설치된 네임스페이스Operator 권장 네임스페이스: openshift-cluster-observability-operator
    • 이 네임스페이스에서 Operator 권장 클러스터 모니터링 활성화를선택합니다.
    • 업데이트 승인자동
  5. 선택 사항: 요구 사항에 맞게 설치 설정을 변경할 수 있습니다. 예를 들어 다른 업데이트 채널에 가입하거나, 이전 릴리스 버전의 Operator를 설치하거나, 새 버전의 Operator에 대한 업데이트에 대한 수동 승인이 필요한 경우 선택할 수 있습니다.
  6. 설치를 클릭합니다.

검증

  • Operator설치된 Operator 로 이동하여 Cluster Observability Operator 항목이 목록에 표시되는지 확인합니다.

3.2. 웹 콘솔을 사용하여 Cluster Observability Operator 설치 제거

OperatorHub를 사용하여 COO(Cluster Observability Operator)를 설치한 경우 OpenShift Container Platform 웹 콘솔에서 해당 Operator를 제거할 수 있습니다.

사전 요구 사항

  • cluster-admin 클러스터 역할의 사용자로 클러스터에 액세스할 수 있습니다.
  • OpenShift Container Platform 웹 콘솔에 로그인했습니다.

프로세스

  1. Operator설치된 Operator 로 이동합니다.
  2. 목록에서 Cluster Observability Operator 항목을 찾습니다.
  3. 이 항목에 대해 kebab 를 클릭하고 Operator 설치 제거를 선택합니다.

검증

  • Operator설치된 Operator 로 이동하여 Cluster Observability Operator 항목이 더 이상 목록에 표시되지 않는지 확인합니다.

4장. 서비스를 모니터링하도록 Cluster Observability Operator 구성

COO(Cluster Observability Operator)에서 관리하는 모니터링 스택을 구성하여 서비스에 대한 메트릭을 모니터링할 수 있습니다.

서비스 모니터링을 테스트하려면 다음 단계를 따르십시오.

  • 서비스 엔드포인트를 정의하는 샘플 서비스를 배포합니다.
  • COO에서 서비스를 모니터링할 방법을 지정하는 ServiceMonitor 오브젝트를 생성합니다.
  • MonitoringStack 오브젝트를 생성하여 ServiceMonitor 오브젝트를 검색합니다.

4.1. Cluster Observability Operator의 샘플 서비스 배포

이 구성은 사용자 정의 ns1-coo 프로젝트에 prometheus-coo-example-app 이라는 샘플 서비스를 배포합니다. 서비스는 사용자 정의 버전 지표를 노출합니다.

사전 요구 사항

  • cluster-admin 클러스터 역할의 사용자로 또는 네임스페이스에 대한 관리 권한이 있는 사용자로 클러스터에 액세스할 수 있습니다.

프로세스

  1. 네임스페이스, 배포 및 서비스에 대한 다음 구성 세부 정보가 포함된 prometheus-coo-example-app.yaml 이라는 YAML 파일을 생성합니다.

    apiVersion: v1
    kind: Namespace
    metadata:
      name: ns1-coo
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: prometheus-coo-example-app
      name: prometheus-coo-example-app
      namespace: ns1-coo
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: prometheus-coo-example-app
      template:
        metadata:
          labels:
            app: prometheus-coo-example-app
        spec:
          containers:
          - image: ghcr.io/rhobs/prometheus-example-app:0.4.2
            imagePullPolicy: IfNotPresent
            name: prometheus-coo-example-app
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: prometheus-coo-example-app
      name: prometheus-coo-example-app
      namespace: ns1-coo
    spec:
      ports:
      - port: 8080
        protocol: TCP
        targetPort: 8080
        name: web
      selector:
        app: prometheus-coo-example-app
      type: ClusterIP
    Copy to Clipboard Toggle word wrap
  2. 파일을 저장합니다.
  3. 다음 명령을 실행하여 클러스터에 구성을 적용합니다.

    $ oc apply -f prometheus-coo-example-app.yaml
    Copy to Clipboard Toggle word wrap
  4. 다음 명령을 실행하고 출력을 관찰하여 포드가 실행 중인지 확인합니다.

    $ oc -n ns1-coo get pod
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                                      READY     STATUS    RESTARTS   AGE
    prometheus-coo-example-app-0927545cb7-anskj   1/1       Running   0          81m
    Copy to Clipboard Toggle word wrap

4.2. Cluster Observability Operator에서 서비스를 모니터링하는 방법 지정

"Cluster Observability Operator의 샘플 서비스 배포" 섹션에서 생성한 샘플 서비스에서 노출하는 메트릭을 사용하려면 /metrics 끝점에서 메트릭을 스크랩하도록 모니터링 구성 요소를 구성해야 합니다.

서비스 모니터링 방법을 지정하는 ServiceMonitor 오브젝트 또는 Pod를 모니터링할 방법을 지정하는 PodMonitor 오브젝트를 사용하여 이 구성을 생성할 수 있습니다. ServiceMonitor 오브젝트에는 Service 오브젝트가 필요합니다. PodMonitor 오브젝트는 MonitoringStack 오브젝트가 Pod에서 노출하는 메트릭 끝점에서 직접 메트릭을 스크랩할 수 있도록 하지 않습니다.

다음 절차에서는 ns1-coo 네임스페이스에서 prometheus-coo-example-app 이라는 샘플 서비스에 대한 ServiceMonitor 오브젝트를 생성하는 방법을 보여줍니다.

사전 요구 사항

  • cluster-admin 클러스터 역할의 사용자로 또는 네임스페이스에 대한 관리 권한이 있는 사용자로 클러스터에 액세스할 수 있습니다.
  • Cluster Observability Operator가 설치되어 있습니다.
  • prometheus-coo-example-app 샘플 서비스를 ns1-coo 네임스페이스에 배포했습니다.

    참고

    prometheus-coo-example-app 샘플 서비스는 TLS 인증을 지원하지 않습니다.

프로세스

  1. 다음 ServiceMonitor 오브젝트 구성 세부 정보가 포함된 example-coo-app-service-monitor.yaml 이라는 YAML 파일을 생성합니다.

    apiVersion: monitoring.rhobs/v1
    kind: ServiceMonitor
    metadata:
      labels:
        k8s-app: prometheus-coo-example-monitor
      name: prometheus-coo-example-monitor
      namespace: ns1-coo
    spec:
      endpoints:
      - interval: 30s
        port: web
        scheme: http
      selector:
        matchLabels:
          app: prometheus-coo-example-app
    Copy to Clipboard Toggle word wrap

    이 구성은 MonitoringStack 오브젝트가 prometheus-coo-example-app 샘플 서비스에서 노출하는 메트릭 데이터를 스크랩하기 위해 참조하는 ServiceMonitor 오브젝트를 정의합니다.

  2. 다음 명령을 실행하여 클러스터에 구성을 적용합니다.

    $ oc apply -f example-coo-app-service-monitor.yaml
    Copy to Clipboard Toggle word wrap
  3. 다음 명령을 실행하고 출력을 관찰하여 ServiceMonitor 리소스가 생성되었는지 확인합니다.

    $ oc -n ns1-coo get servicemonitors.monitoring.rhobs
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                         AGE
    prometheus-coo-example-monitor   81m
    Copy to Clipboard Toggle word wrap

4.3. Cluster Observability Operator에 대한 MonitoringStack 오브젝트 생성

대상 prometheus-coo-example-app 서비스에서 노출하는 메트릭 데이터를 스크랩하려면 "Cluster Observability Operator에 대해 서비스 모니터링 방법 연결" 섹션에서 생성한 ServiceMonitor 오브젝트를 참조하는 MonitoringStack 오브젝트를 생성합니다. 그러면 이 MonitoringStack 오브젝트에서 서비스를 검색하고 노출된 지표 데이터를 스크랩할 수 있습니다.

사전 요구 사항

  • cluster-admin 클러스터 역할의 사용자로 또는 네임스페이스에 대한 관리 권한이 있는 사용자로 클러스터에 액세스할 수 있습니다.
  • Cluster Observability Operator가 설치되어 있습니다.
  • prometheus-coo-example-app 샘플 서비스를 ns1-coo 네임스페이스에 배포했습니다.
  • ns1-coo 네임스페이스에 prometheus-coo-example-monitor 라는 ServiceMonitor 오브젝트를 생성했습니다.

프로세스

  1. MonitoringStack 오브젝트 구성에 대한 YAML 파일을 생성합니다. 이 예제에서는 example-coo-monitoring-stack.yaml 파일의 이름을 지정합니다.
  2. 다음 MonitoringStack 오브젝트 구성 세부 정보를 추가합니다.

    MonitoringStack 오브젝트의 예

    apiVersion: monitoring.rhobs/v1alpha1
    kind: MonitoringStack
    metadata:
      name: example-coo-monitoring-stack
      namespace: ns1-coo
    spec:
      logLevel: debug
      retention: 1d
      resourceSelector:
        matchLabels:
          k8s-app: prometheus-coo-example-monitor
    Copy to Clipboard Toggle word wrap

  3. 다음 명령을 실행하여 MonitoringStack 오브젝트를 적용합니다.

    $ oc apply -f example-coo-monitoring-stack.yaml
    Copy to Clipboard Toggle word wrap
  4. 다음 명령을 실행하고 출력을 검사하여 MonitoringStack 오브젝트를 사용할 수 있는지 확인합니다.

    $ oc -n ns1-coo get monitoringstack
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME                         AGE
    example-coo-monitoring-stack   81m
    Copy to Clipboard Toggle word wrap

  5. 다음 명령을 실행하여 Prometheus의 활성 대상에 대한 정보를 검색하고, app=prometheus-coo-example-app 로 레이블이 지정된 대상만 나열하도록 출력을 필터링합니다. 이렇게 하면 이 특정 레이블을 사용하여 Prometheus에서 검색 및 적극적으로 모니터링하는 대상이 검증됩니다.

    $ oc -n ns1-coo exec -c prometheus prometheus-example-coo-monitoring-stack-0 -- curl -s 'http://localhost:9090/api/v1/targets' | jq '.data.activeTargets[].discoveredLabels | select(.__meta_kubernetes_endpoints_label_app=="prometheus-coo-example-app")'
    Copy to Clipboard Toggle word wrap

    출력 예

    {
      "__address__": "10.129.2.25:8080",
      "__meta_kubernetes_endpoint_address_target_kind": "Pod",
      "__meta_kubernetes_endpoint_address_target_name": "prometheus-coo-example-app-5d8cd498c7-9j2gj",
      "__meta_kubernetes_endpoint_node_name": "ci-ln-8tt8vxb-72292-6cxjr-worker-a-wdfnz",
      "__meta_kubernetes_endpoint_port_name": "web",
      "__meta_kubernetes_endpoint_port_protocol": "TCP",
      "__meta_kubernetes_endpoint_ready": "true",
      "__meta_kubernetes_endpoints_annotation_endpoints_kubernetes_io_last_change_trigger_time": "2024-11-05T11:24:09Z",
      "__meta_kubernetes_endpoints_annotationpresent_endpoints_kubernetes_io_last_change_trigger_time": "true",
      "__meta_kubernetes_endpoints_label_app": "prometheus-coo-example-app",
      "__meta_kubernetes_endpoints_labelpresent_app": "true",
      "__meta_kubernetes_endpoints_name": "prometheus-coo-example-app",
      "__meta_kubernetes_namespace": "ns1-coo",
      "__meta_kubernetes_pod_annotation_k8s_ovn_org_pod_networks": "{\"default\":{\"ip_addresses\":[\"10.129.2.25/23\"],\"mac_address\":\"0a:58:0a:81:02:19\",\"gateway_ips\":[\"10.129.2.1\"],\"routes\":[{\"dest\":\"10.128.0.0/14\",\"nextHop\":\"10.129.2.1\"},{\"dest\":\"172.30.0.0/16\",\"nextHop\":\"10.129.2.1\"},{\"dest\":\"100.64.0.0/16\",\"nextHop\":\"10.129.2.1\"}],\"ip_address\":\"10.129.2.25/23\",\"gateway_ip\":\"10.129.2.1\",\"role\":\"primary\"}}",
      "__meta_kubernetes_pod_annotation_k8s_v1_cni_cncf_io_network_status": "[{\n    \"name\": \"ovn-kubernetes\",\n    \"interface\": \"eth0\",\n    \"ips\": [\n        \"10.129.2.25\"\n    ],\n    \"mac\": \"0a:58:0a:81:02:19\",\n    \"default\": true,\n    \"dns\": {}\n}]",
      "__meta_kubernetes_pod_annotation_openshift_io_scc": "restricted-v2",
      "__meta_kubernetes_pod_annotation_seccomp_security_alpha_kubernetes_io_pod": "runtime/default",
      "__meta_kubernetes_pod_annotationpresent_k8s_ovn_org_pod_networks": "true",
      "__meta_kubernetes_pod_annotationpresent_k8s_v1_cni_cncf_io_network_status": "true",
      "__meta_kubernetes_pod_annotationpresent_openshift_io_scc": "true",
      "__meta_kubernetes_pod_annotationpresent_seccomp_security_alpha_kubernetes_io_pod": "true",
      "__meta_kubernetes_pod_controller_kind": "ReplicaSet",
      "__meta_kubernetes_pod_controller_name": "prometheus-coo-example-app-5d8cd498c7",
      "__meta_kubernetes_pod_host_ip": "10.0.128.2",
      "__meta_kubernetes_pod_ip": "10.129.2.25",
      "__meta_kubernetes_pod_label_app": "prometheus-coo-example-app",
      "__meta_kubernetes_pod_label_pod_template_hash": "5d8cd498c7",
      "__meta_kubernetes_pod_labelpresent_app": "true",
      "__meta_kubernetes_pod_labelpresent_pod_template_hash": "true",
      "__meta_kubernetes_pod_name": "prometheus-coo-example-app-5d8cd498c7-9j2gj",
      "__meta_kubernetes_pod_node_name": "ci-ln-8tt8vxb-72292-6cxjr-worker-a-wdfnz",
      "__meta_kubernetes_pod_phase": "Running",
      "__meta_kubernetes_pod_ready": "true",
      "__meta_kubernetes_pod_uid": "054c11b6-9a76-4827-a860-47f3a4596871",
      "__meta_kubernetes_service_label_app": "prometheus-coo-example-app",
      "__meta_kubernetes_service_labelpresent_app": "true",
      "__meta_kubernetes_service_name": "prometheus-coo-example-app",
      "__metrics_path__": "/metrics",
      "__scheme__": "http",
      "__scrape_interval__": "30s",
      "__scrape_timeout__": "10s",
      "job": "serviceMonitor/ns1-coo/prometheus-coo-example-monitor/0"
    }
    Copy to Clipboard Toggle word wrap

    참고

    위의 예제에서는 jq 명령줄 JSON 프로세서를 사용하여 편의를 위해 출력을 포맷합니다.

4.4. 모니터링 스택 검증

모니터링 스택이 올바르게 작동하는지 확인하려면 예제 서비스에 액세스한 다음 수집된 지표를 확인합니다.

사전 요구 사항

  • cluster-admin 클러스터 역할의 사용자로 또는 네임스페이스에 대한 관리 권한이 있는 사용자로 클러스터에 액세스할 수 있습니다.
  • Cluster Observability Operator가 설치되어 있습니다.
  • prometheus-coo-example-app 샘플 서비스를 ns1-coo 네임스페이스에 배포했습니다.
  • ns1-coo 네임스페이스에 prometheus-coo-example-monitor 라는 ServiceMonitor 오브젝트를 생성했습니다.
  • ns1-coo 네임스페이스에 example-coo-monitoring-stack 이라는 MonitoringStack 오브젝트를 생성했습니다.

프로세스

  1. example prometheus-coo-example-app 서비스를 노출할 경로를 생성합니다. 터미널에서 다음 명령을 실행합니다.

    $ oc expose svc prometheus-coo-example-app -n ns1-coo
    Copy to Clipboard Toggle word wrap
  2. 브라우저 또는 명령줄에서 경로에 액세스하여 메트릭을 생성합니다.
  3. Prometheus Pod에서 쿼리를 실행하여 총 HTTP 요청 지표를 반환합니다.

    $ oc -n ns1-coo exec -c prometheus prometheus-example-coo-monitoring-stack-0 -- curl -s 'http://localhost:9090/api/v1/query?query=http_requests_total'
    Copy to Clipboard Toggle word wrap

    출력 예(상 편의를 위해 jq 를 사용하여 포맷됨)

    {
      "status": "success",
      "data": {
        "resultType": "vector",
        "result": [
          {
            "metric": {
              "__name__": "http_requests_total",
              "code": "200",
              "endpoint": "web",
              "instance": "10.129.2.25:8080",
              "job": "prometheus-coo-example-app",
              "method": "get",
              "namespace": "ns1-coo",
              "pod": "prometheus-coo-example-app-5d8cd498c7-9j2gj",
              "service": "prometheus-coo-example-app"
            },
            "value": [
              1730807483.632,
              "3"
            ]
          },
          {
            "metric": {
              "__name__": "http_requests_total",
              "code": "404",
              "endpoint": "web",
              "instance": "10.129.2.25:8080",
              "job": "prometheus-coo-example-app",
              "method": "get",
              "namespace": "ns1-coo",
              "pod": "prometheus-coo-example-app-5d8cd498c7-9j2gj",
              "service": "prometheus-coo-example-app"
            },
            "value": [
              1730807483.632,
              "0"
            ]
          }
        ]
      }
    }
    Copy to Clipboard Toggle word wrap

4.5. 여러 네임스페이스의 스크랩 대상

여러 네임스페이스에서 대상을 스크랩하려면 MonitoringStack 오브젝트에서 네임스페이스 및 리소스 선택기를 설정합니다.

사전 요구 사항

  • cluster-admin 클러스터 역할의 사용자로 또는 네임스페이스에 대한 관리 권한이 있는 사용자로 클러스터에 액세스할 수 있습니다.
  • Cluster Observability Operator가 설치되어 있습니다.

프로세스

  1. 다음 네임스페이스 개체와 MonitoringStack YAML 파일을 배포합니다.

    MonitoringStack 예제

    apiVersion: v1
    kind: Namespace
    metadata:
      name: ns1-coo
      labels:
        monitoring.rhobs/stack: multi-ns
    ---
    apiVersion: monitoring.rhobs/v1alpha1
    kind: MonitoringStack
    metadata:
      name: example-coo-monitoring-stack
      namespace: ns1-coo
    spec:
      logLevel: debug
      retention: 1d
      resourceSelector:
          matchLabels:
            k8s-app: prometheus-coo-example-monitor
      namespaceSelector:
          matchLabels:
            monitoring.rhobs/stack: multi-ns
    Copy to Clipboard Toggle word wrap

  2. 항상 발생하는 경고와 함께 ns1-coo 네임스페이스에 샘플 애플리케이션을 배포합니다.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: prometheus-coo-example-app
      name: prometheus-coo-example-app
      namespace: ns1-coo
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: prometheus-coo-example-app
      template:
        metadata:
          labels:
            app: prometheus-coo-example-app
        spec:
          containers:
          - image: ghcr.io/rhobs/prometheus-example-app:0.4.2
            imagePullPolicy: IfNotPresent
            name: prometheus-coo-example-app
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: prometheus-coo-example-app
      name: prometheus-coo-example-app
      namespace: ns1-coo
    spec:
      ports:
      - port: 8080
        protocol: TCP
        targetPort: 8080
        name: web
      selector:
        app: prometheus-coo-example-app
      type: ClusterIP
    ---
    apiVersion: monitoring.rhobs/v1
    kind: ServiceMonitor
    metadata:
      labels:
        k8s-app: prometheus-coo-example-monitor
      name: prometheus-coo-example-monitor
      namespace: ns1-coo
    spec:
      endpoints:
      - interval: 30s
        port: web
        scheme: http
      selector:
        matchLabels:
          app: prometheus-coo-example-app
    ---
    apiVersion: monitoring.rhobs/v1
    kind: PrometheusRule
    metadata:
      name: example-alert
      namespace: ns1-coo
      labels:
        k8s-app: prometheus-coo-example-monitor
    spec:
      groups:
      - name: example
        rules:
        - alert: VersionAlert
          for: 1m
          expr: version{job="prometheus-coo-example-app"} > 0
          labels:
            severity: warning
    Copy to Clipboard Toggle word wrap
  3. monitoring.rhobs/stack: multi-ns 라는 라벨이 붙은 다른 네임스페이스에 동일한 예제 애플리케이션을 배포합니다.

    apiVersion: v1
    kind: Namespace
    metadata:
      name: ns2-coo
      labels:
        monitoring.rhobs/stack: multi-ns
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: prometheus-coo-example-app
      name: prometheus-coo-example-app
      namespace: ns2-coo
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: prometheus-coo-example-app
      template:
        metadata:
          labels:
            app: prometheus-coo-example-app
        spec:
          containers:
          - image: ghcr.io/rhobs/prometheus-example-app:0.4.2
            imagePullPolicy: IfNotPresent
            name: prometheus-coo-example-app
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: prometheus-coo-example-app
      name: prometheus-coo-example-app
      namespace: ns2-coo
    spec:
      ports:
      - port: 8080
        protocol: TCP
        targetPort: 8080
        name: web
      selector:
        app: prometheus-coo-example-app
      type: ClusterIP
    ---
    apiVersion: monitoring.rhobs/v1
    kind: ServiceMonitor
    metadata:
      labels:
        k8s-app: prometheus-coo-example-monitor
      name: prometheus-coo-example-monitor
      namespace: ns2-coo
    spec:
      endpoints:
      - interval: 30s
        port: web
        scheme: http
      selector:
        matchLabels:
          app: prometheus-coo-example-app
    Copy to Clipboard Toggle word wrap

검증

  1. Prometheus 인스턴스가 새로운 대상을 추가하고 알림이 실행되는지 확인합니다. port-forward 명령을 사용하여 Monitoringstack 인스턴스에 의해 배포된 Prometheus 또는 Alertmanager 사용자 인터페이스를 노출합니다.

    Prometheus

    $ oc port-forward -n ns1-coo pod/prometheus-example-coo-monitoring-stack-0 9090
    Copy to Clipboard Toggle word wrap

    Alertmanager

    $ oc port-forward -n ns1-coo pod/alertmanager-example-coo-monitoring-stack-0 9093
    Copy to Clipboard Toggle word wrap

  2. 대상이 스크랩되고 있고 http://localhost:9090/targets 또는 http://localhost:9093/#/alerts 로 이동하여 경고가 실행되는지 확인합니다.

5장. 관찰 기능 UI 플러그인

5.1. 관찰 기능 UI 플러그인 개요

COO(Cluster Observability Operator)를 사용하여 UI 플러그인을 설치 및 관리하여 OpenShift Container Platform 웹 콘솔의 관찰 기능을 개선할 수 있습니다. 플러그인은 기본 기능을 확장하여 문제 해결, 분산 추적 및 클러스터 로깅을 위한 새로운 UI 기능을 제공합니다.

5.1.1. 모니터링

모니터링 UI 플러그인은 Advance Cluster Management(ACM) 화면을 위해 OpenShift 웹 콘솔에 모니터링 관련 UI 기능을 추가합니다.

  • ACM: COO(Cluster Observability Operator)의 모니터링 플러그인을 통해 RHACM(Red Hat Advanced Cluster Management) 환경에서 작동할 수 있으므로 ACM에 OpenShift Container Platform과 동일한 모니터링 기능이 제공됩니다.

자세한 내용은 모니터링 UI 플러그인 페이지를 참조하십시오.

5.1.2. 클러스터 로깅

로깅 UI 플러그인은 모니터링로그 페이지의 웹 콘솔에 로깅 데이터를 표시합니다. 필터, 쿼리, 시간 범위 및 새로 고침 속도를 지정할 수 있습니다. 결과에 접힌 로그 목록이 표시되어 각 로그에 대한 자세한 정보를 표시하도록 확장할 수 있습니다.

자세한 내용은 로깅 UI 플러그인 페이지를 참조하십시오.

5.1.3. 문제 해결

중요

Cluster Observability Operator 문제 해결 패널 UI 플러그인은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

OpenShift Container Platform 버전 4.16+의 문제 해결 패널 UI 플러그인은 오픈 소스 Korrel8r 프로젝트에서 제공하는 관찰 가능성 신호 상관 관계를 제공합니다. ObserveAlerting 페이지에서 제공되는 문제 해결 패널을 사용하여 다양한 데이터 저장소에서 메트릭, 로그, 경고, netflows 및 추가 관찰 가능성 신호 및 리소스를 쉽게 연결할 수 있습니다. OpenShift Container Platform 버전 4.17 이상 사용자는 Application Launcher app launcher 에서 문제 해결 UI 패널에도 액세스할 수 있습니다.

Korrel8r의 출력이 대화형 노드 그래프로 표시됩니다. 노드를 클릭하면 해당 노드의 특정 정보(예: 메트릭, 로그 또는 Pod)를 사용하여 해당 웹 콘솔 페이지로 자동으로 리디렉션됩니다.

자세한 내용은 UI 플러그인 문제 해결 페이지를 참조하십시오.

5.1.4. 분산 추적

분산 추적 UI 플러그인은 모니터링 → 추적 페이지의 웹 콘솔에 추적 관련 기능을 추가합니다. 프런트 엔드 및 마이크로 서비스 백엔드로 요청을 수행하여 분산 시스템의 코드 오류 및 성능 병목 현상을 식별할 수 있습니다. 클러스터에서 실행 중인 지원되는 TempoStack 또는 TempoMonolithic 다중 테넌트 인스턴스를 선택하고 시간 범위 및 쿼리를 설정하여 추적 데이터를 볼 수 있습니다.

자세한 내용은 분산 추적 UI 플러그인 페이지를 참조하십시오.

5.2. UI 플러그인 모니터링

중요

Cluster Observability Operator 모니터링 UI 플러그인은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

모니터링 UI 플러그인은 OpenShift 웹 콘솔의 관리자 화면에 모니터링 기능을 추가합니다.

  • RHACM: COO(Cluster Observability Operator)의 모니터링 플러그인을 사용하면 RHACM(Red Hat Advanced Cluster Management) 환경에서 작동할 수 있으므로 OpenShift Container Platform과 동일한 경고 기능을 RHACM에 제공할 수 있습니다. RHACM Alertmanager 백엔드에서 경고를 가져오도록 플러그인을 구성할 수 있습니다. 이를 통해 RHACM 및 OpenShift Container Platform 모니터링 워크플로우를 조정하여 원활한 통합 및 사용자 환경을 구현할 수 있습니다.

5.2.1. Cluster Observability Operator 모니터링 UI 플러그인 설치

모니터링 UI 플러그인은 Advance Cluster Management(ACM) 화면을 위해 OpenShift 웹 콘솔에 모니터링 관련 UI 기능을 추가합니다.

사전 요구 사항

  • cluster-admin 클러스터 역할의 사용자로 클러스터에 액세스할 수 있습니다.
  • OpenShift Container Platform 웹 콘솔에 로그인했습니다.
  • Cluster Observability Operator가 설치되어 있습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에서 Operator → 설치된 Operator 를 클릭하고 Cluster Observability Operator를 선택합니다.
  2. UI 플러그인 탭(tab 목록의 맨 오른쪽에 있음)을 선택하고 Create UIPlugin을 누릅니다.
  3. YAML 보기를 선택하고 다음 콘텐츠를 입력한 다음 Create:을 누릅니다.

    apiVersion: observability.openshift.io/v1alpha1
    kind: UIPlugin
    metadata:
      name: monitoring
    spec:
      type: Monitoring
      monitoring:
        acm: 
    1
    
          enabled: true
          alertmanager:
            url: 'https://alertmanager.open-cluster-management-observability.svc:9095'
          thanosQuerier:
            url: 'https://rbac-query-proxy.open-cluster-management-observability.svc:8443'
    Copy to Clipboard Toggle word wrap
    1
    RHACM 기능을 활성화합니다. Alertmanager 및 ThanosQuerier 서비스 끝점을 구성해야 합니다.

5.3. 로깅 UI 플러그인

로깅 UI 플러그인은 모니터링로그 페이지의 OpenShift Container Platform 웹 콘솔에 로깅 데이터를 표시합니다. 축소된 로그 목록으로 결과가 표시되므로 필터, 쿼리, 시간 범위 및 새로 고침 속도를 지정할 수 있으며 각 로그에 대한 자세한 정보를 표시하도록 확장할 수 있습니다.

OpenShift Container Platform 버전 4.16 이상에 Troubleshooting UI 플러그인을 배포한 경우 Korrel8r 서비스에 연결하고 ObserveLogs 페이지에서 ObserveMetrics 페이지에 있는 직접 링크를 PromQL 쿼리와 함께 추가합니다. 또한 ObserveAlerting 의 관리 관점 경고 세부 정보 페이지의 관련 로그 보기 링크를 선택한 ObserveLogs 페이지에 추가합니다.

플러그인의 기능은 다음과 같이 분류됩니다.

dev-console
개발자 화면에 로깅 보기를 추가합니다.
경고
Loki 규칙자에 정의된 로그 기반 경고와 웹 콘솔 경고를 병합합니다. 경고 세부 정보 뷰에 로그 기반 메트릭 차트를 추가합니다.
dev-alerts
Loki 규칙자에 정의된 로그 기반 경고와 웹 콘솔 경고를 병합합니다. 개발자 화면에 대한 경고 세부 정보 뷰에 로그 기반 지표 차트를 추가합니다.

COO(Cluster Observability Operator) 버전의 경우 OpenShift Container Platform 버전에서 이러한 기능에 대한 지원이 다음 표에 표시되어 있습니다.

Expand
COO 버전OCP 버전기능

0.3.0+

4.12

dev-console

0.3.0+

4.13

dev-console,alerts

0.3.0+

4.14+

dev-console,경고,dev-alerts

5.3.1. Cluster Observability Operator 로깅 UI 플러그인 설치

사전 요구 사항

  • cluster-admin 역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
  • OpenShift Container Platform 웹 콘솔에 로그인했습니다.
  • Cluster Observability Operator가 설치되어 있습니다.
  • 클러스터에 LokiStack 인스턴스가 있습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에서 Operator → 설치된 Operator 를 클릭하고 Cluster Observability Operator를 선택합니다.
  2. 탭 목록의 맨 오른쪽에 있는 UI 플러그인 탭을 선택하고 Create UIPlugin 을 클릭합니다.
  3. YAML 보기를 선택하고 다음 콘텐츠를 입력한 다음 Create:을 클릭합니다.

    apiVersion: observability.openshift.io/v1alpha1
    kind: UIPlugin
    metadata:
      name: logging
    spec:
      type: Logging
      logging:
        lokiStack:
          name: logging-loki
        logsLimit: 50
        timeout: 30s
        schema: otel 
    1
    Copy to Clipboard Toggle word wrap
    1
    스키마otel,viaq 또는 select 중 하나입니다. 값이 지정되지 않은 경우 기본값은 viaq 입니다. 선택을 선택하면 쿼리를 실행할 때 UI에서 모드를 선택할 수 있습니다.
    참고

    로깅 UI 플러그인의 알려진 문제 - 자세한 내용은 OU-587 을 참조하십시오.

    • 스키마 기능은 OpenShift Container Platform 4.15 이상에서만 지원됩니다. 이전 버전의 OpenShift Container Platform에서는 로깅 UI 플러그인은 설정할 수 있는 다른 값을 무시하고 viaq 속성만 사용합니다.
    • 관리자가 아닌 사용자는 Red Hat OpenShift 버전 5.8에서 6.2로 로깅하는 otel 특성을 사용하여 로그를 쿼리할 수 없습니다. 이 문제는 향후 로깅 릴리스에서 해결될 예정입니다. (LOG-6589)
    • Red Hat OpenShift 버전 5.9 로깅에서 severity_text Otel 속성은 설정되지 않습니다.

5.4. 분산 추적 UI 플러그인

분산 추적 UI 플러그인은 ObserveTraces 의 OpenShift 웹 콘솔의 관리자 화면에 추적 관련 기능을 추가합니다. 프런트 엔드 및 마이크로 서비스 백엔드로 요청을 수행하여 분산 시스템의 코드 오류 및 성능 병목 현상을 식별할 수 있습니다.

5.4.1. Cluster Observability Operator distributed tracing UI 플러그인 설치

사전 요구 사항

  • cluster-admin 클러스터 역할의 사용자로 클러스터에 액세스할 수 있습니다.
  • OpenShift Container Platform 웹 콘솔에 로그인했습니다.
  • Cluster Observability Operator가 설치되어 있습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에서 Operator → 설치된 Operator 를 클릭하고 Cluster Observability Operator를 선택합니다.
  2. UI 플러그인 탭(tab 목록의 맨 오른쪽에 있음)을 선택하고 Create UIPlugin을 누릅니다.
  3. YAML 보기를 선택하고 다음 콘텐츠를 입력한 다음 Create:을 누릅니다.

    apiVersion: observability.openshift.io/v1alpha1
    kind: UIPlugin
    metadata:
      name: distributed-tracing
    spec:
      type: DistributedTracing
    Copy to Clipboard Toggle word wrap

5.4.2. Cluster Observability Operator distributed tracing UI 플러그인 사용

사전 요구 사항

  • cluster-admin 클러스터 역할의 사용자로 클러스터에 액세스할 수 있습니다.
  • OpenShift Container Platform 웹 콘솔에 로그인했습니다.
  • Cluster Observability Operator가 설치되어 있습니다.
  • Cluster Observability Operator distributed tracing UI 플러그인을 설치했습니다.
  • 클러스터에 TempoStack 또는 TempoMonolithic 다중 테넌트 인스턴스가 있습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔의 관리자 화면에서 모니터링추적을 클릭합니다.
  2. TempoStack 또는 TempoMonolithic 다중 테넌트 인스턴스를 선택하고 추적을 로드할 시간 범위 및 쿼리를 설정합니다.

    추적은 추적 시작 시간, 기간 및 기간 수를 보여주는 묶인 플로트에 표시됩니다. 분산형 플롯 아래에는 추적 이름, 범위 수기간 과 같은 정보를 보여주는 추적 목록이 있습니다.

  3. 추적 이름 링크를 클릭합니다.

    선택한 추적에 대한 추적 세부 정보 페이지에는 추적 내의 모든 범위의 Gantt Chart가 포함되어 있습니다. 구성된 특성의 분석을 표시하려면 범위를 선택합니다.

5.5. UI 플러그인 문제 해결

중요

Cluster Observability Operator 문제 해결 패널 UI 플러그인은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

OpenShift Container Platform 버전 4.16+의 문제 해결 UI 플러그인은 오픈 소스 Korrel8r 프로젝트에서 제공하는 관찰 가능성 신호 상관 관계를 제공합니다. 모니터링경고 에서 사용할 수 있는 문제 해결 패널을 사용하면 다양한 데이터 저장소에서 메트릭, 로그, 경고, netflows 및 추가 관찰 가능성 신호 및 리소스를 쉽게 연결할 수 있습니다. OpenShift Container Platform 버전 4.17 이상 사용자는 Application Launcher app launcher 에서 문제 해결 UI 패널에도 액세스할 수 있습니다.

문제 해결 UI 플러그인을 설치하면 korrel8r 라는 Korrel8r 서비스가 동일한 네임스페이스에 배포되며 상관 엔진에서 관련 관찰 가능성 신호 및 Kubernetes 리소스를 찾을 수 있습니다.

Korrel8r의 출력은 OpenShift Container Platform 웹 콘솔의 대화형 노드 그래프 형태로 표시됩니다. 그래프의 노드는 리소스 또는 신호 유형을 나타내며 에지는 관계를 나타냅니다. 노드를 클릭하면 해당 노드에 대한 특정 정보(예: 메트릭, 로그, Pod)를 사용하여 해당 웹 콘솔 페이지로 자동으로 리디렉션됩니다.

5.5.1. Cluster Observability Operator 문제 해결 UI 플러그인 설치

사전 요구 사항

  • cluster-admin 클러스터 역할의 사용자로 클러스터에 액세스할 수 있습니다.
  • OpenShift Container Platform 웹 콘솔에 로그인했습니다.
  • Cluster Observability Operator가 설치되어 있습니다.

프로세스

  1. OpenShift Container Platform 웹 콘솔에서 Operator → 설치된 Operator 를 클릭하고 Cluster Observability Operator를 선택합니다.
  2. UI 플러그인 탭(tab 목록의 맨 오른쪽에 있음)을 선택하고 Create UIPlugin을 누릅니다.
  3. YAML 보기를 선택하고 다음 콘텐츠를 입력한 다음 Create:을 누릅니다.

    apiVersion: observability.openshift.io/v1alpha1
    kind: UIPlugin
    metadata:
      name: troubleshooting-panel
    spec:
      type: TroubleshootingPanel
    Copy to Clipboard Toggle word wrap

5.5.2. Cluster Observability Operator 문제 해결 UI 플러그인 사용

사전 요구 사항

  • cluster-admin 클러스터 역할의 사용자로 OpenShift Container Platform 클러스터에 액세스할 수 있습니다. 클러스터 버전이 4.17 이상인 경우 Application Launcher app launcher 에서 문제 해결 UI 패널에 액세스할 수 있습니다.
  • OpenShift Container Platform 웹 콘솔에 로그인했습니다.
  • 상관된 로그를 시각화하려면 OpenShift Container Platform Logging을 설치했습니다.
  • 상관 관계가 있는 netflow를 시각화하려는 경우 OpenShift Container Platform Network Observability를 설치했습니다.
  • Cluster Observability Operator가 설치되어 있습니다.
  • Cluster Observability Operator 문제 해결 UI 플러그인을 설치했습니다.

    참고

    문제 해결 패널은 클러스터에 설치된 관찰 가능성 신호 저장소를 사용합니다. Kuberenetes 리소스, 경고 및 메트릭은 OpenShift Container Platform 클러스터에서 항상 사용할 수 있습니다. 기타 신호 유형을 사용하려면 선택적 구성 요소를 설치해야 합니다.

    • 로그: Red Hat (store)에서 제공하는 Red Hat Openshift Logging (collection) 및 Loki Operator
    • 네트워크 이벤트: Red Hat (store)에서 제공하는 Red Hat (collection) 및 Loki Operator에서 제공하는 네트워크 관찰 기능

    프로세스

    1. 웹 콘솔의 관리자 화면에서 모니터링경고로 이동한 다음 경고를 선택합니다. 경고에 관련 항목이 있는 경우 경고 세부 정보 페이지의 차트 위에 문제 해결 패널 링크가 표시됩니다.

      패널 문제 해결 링크를 클릭하여 패널을 표시합니다.

    2. 패널은 쿼리 세부 정보와 쿼리 결과의 토폴로지 그래프로 구성됩니다. 선택한 경고는 Korrel8r 쿼리 문자열로 변환되고 korrel8r 서비스로 전송됩니다. 결과는 반환된 신호 및 리소스를 연결하는 그래프 네트워크로 표시됩니다. 이 그래프 현재 리소스에서 시작하여 시작점에서 3단계까지의 관련 오브젝트를 포함합니다. 그래프에서 노드를 클릭하면 해당 resouces에 대한 해당 웹 콘솔 페이지로 이동합니다.
    3. 문제 해결 패널을 사용하여 선택한 경고와 관련된 리소스를 찾을 수 있습니다.

      참고

      노드를 클릭하면 그래프에 표시된 것보다 더 적은 결과가 표시되는 경우가 있습니다. 이는 향후 릴리스에서 해결될 알려진 문제입니다.

      1. 경고(1): 이 노드는 그래프의 시작점이며 웹 콘솔에 표시된 KubeContainerWaiting 경고를 나타냅니다.
      2. pod(1): 이 노드는 이 경고와 연결된 단일 Pod 리소스가 있음을 나타냅니다. 이 노드를 클릭하면 관련 Pod를 직접 표시하는 콘솔 검색이 열립니다.
      3. 이벤트(2): Pod와 관련된 두 개의 Kuberenetes 이벤트가 있습니다. 이 노드를 클릭하여 이벤트를 확인합니다.
      4. 로그(74): 이 포드에는 이 노드를 클릭하여 액세스할 수 있는 74개의 로그 행이 있습니다.
      5. 지표(105): Pod와 관련된 많은 메트릭이 있습니다.
      6. 네트워크(6): 포드가 네트워크를 통해 통신했음을 나타내는 네트워크 이벤트가 있습니다. 그래프의 나머지 노드는 Pod가 통신한 Service,DeploymentDaemonSet 리소스를 나타냅니다.
      7. focus: 이 버튼을 클릭하면 그래프가 업데이트됩니다. 기본적으로 그래프의 노드를 클릭하면 그래프 자체는 변경되지 않습니다. 대신 기본 웹 콘솔 페이지가 변경되고 페이지의 링크를 사용하여 다른 리소스로 이동할 수 있지만 문제 해결 패널 자체는 열려 있고 변경되지 않은 상태로 유지됩니다. 문제 해결 패널의 그래프를 강제로 업데이트하려면 을 클릭합니다. 그러면 웹 콘솔의 현재 리소스를 시작점으로 사용하여 새 그래프가 표시됩니다.
      8. 쿼리 표시: 이 버튼을 클릭하면 몇 가지 실험적 기능이 활성화됩니다.

        1. 쿼리 숨기는 실험적 기능을 숨깁니다. Hide Query hides the experimental features.
        2. 그래프의 시작 지점을 식별하는 쿼리입니다. 그래프를 만드는 데 사용되는 Korrel8r 상관 엔진의 일부인 쿼리 언어는 실험적이며 향후 변경될 수 있습니다. 쿼리는 기본 웹 콘솔 창의 리소스에 대응하도록 focus 버튼에 의해 업데이트됩니다.
        3. 고위 깊이 는 더 작거나 더 큰 것을 표시하는 데 사용됩니다.

          참고

          큰 클러스터에서 큰 값을 설정하면 결과 수가 너무 크면 쿼리가 실패할 수 있습니다.

        4. 목표 클래스는 검색 대신 검색 방향을 목표로 합니다. 목표는 시작 지점에서 목표 클래스까지의 모든 경로를 표시하며, 이는 리소스 또는 신호 유형을 나타냅니다. 목표 클래스의 형식은 실험적이며 변경될 수 있습니다. 현재 다음 목표는 유효합니다.

          • k8s:RESOURCE[VERSION.[GROUP]] 은 일종의 kuberenetes 리소스를 식별합니다. 예: k8s:Pod 또는 k8s:Deployment.apps.v1.
          • 경고: 경고를 나타냅니다.
          • 메트릭: 메트릭 을 나타냅니다.
          • NetFlow:network 는 모든 네트워크 관찰 기능 네트워크 이벤트를 나타냅니다.
          • 로그: 저장된 로그를 나타내는LOG_TYPE. 여기서 LOG_TYPE애플리케이션,인프라 또는 감사 중 하나여야 합니다.

5.5.3. 예제 경고 생성

문제 해결 UI 패널에서 경고를 시작점으로 트리거하려면 의도적으로 잘못 구성된 컨테이너를 배포할 수 있습니다.

프로세스

  1. 명령줄 또는 웹 콘솔의 다음 YAML을 사용하여 시스템 네임스페이스에 손상된 배포를 생성합니다.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: bad-deployment
      namespace: default 
    1
    
    spec:
      selector:
        matchLabels:
          app: bad-deployment
      template:
        metadata:
          labels:
            app: bad-deployment
        spec:
          containers: 
    2
    
          - name: bad-deployment
            image: quay.io/openshift-logging/vector:5.8
    Copy to Clipboard Toggle word wrap
    1
    원하는 경고를 유발하려면 시스템 네임스페이스(예: default)에 배포해야 합니다.
    2
    이 컨테이너는 구성 파일 없이 벡터 서버를 의도적으로 시작하려고 합니다. 서버는 몇 가지 메시지를 기록한 다음 오류와 함께 종료합니다. 또는 이러한 컨테이너를 잘못 구성하여 이로 인해 경고가 트리거될 수 있습니다.
  2. 경고를 확인합니다.

    1. 모니터링경고로 이동하여 모든 필터 지우기 를 클릭합니다. 보류 중 경고를 확인합니다.

      중요

      먼저 경고가 보류 중 상태로 표시됩니다. 컨테이너가 일정 시간 동안 충돌한 후에야 Firing이 시작됩니다. 보류 중 경고를 보면 발생하는 것을 확인하기 위해 기다릴 필요가 없습니다.

    2. KubeContainerWaiting,KubePodCrashLooping, KubePodNotReady 경고 중 하나를 선택하고 링크를 클릭하여 문제 해결 패널을 엽니다. 또는 패널이 이미 열려 있는 경우 "Focus" 버튼을 클릭하여 그래프를 업데이트합니다.

6장. 모니터링 API 참조

리소스 유형은 MonitoringStackThanosQuerier 입니다.

6.1. MonitoringStack

MonitoringStack 은 monitoringstacks API의 스키마입니다.

Expand
이름유형설명필수 항목

apiVersion

string

monitoring.rhobs/v1alpha1

true

kind

string

MonitoringStack

true

metadata

object

metadata 필드의 필드는 Kubernetes API 설명서를 참조하십시오.

true

spec

object

MonitoringStackSpec 은 원하는 MonitoringStack 오브젝트의 사양입니다.

true

상태

object

MonitoringStackStatusMonitoringStack 오브젝트의 관찰 상태를 정의합니다. 클러스터 및/또는 외부의 상태에서 항상 재구성할 수 있어야 합니다.

false

6.2. MonitoringStack.spec

MonitoringStackSpec 은 원하는 MonitoringStack 오브젝트의 사양입니다.

Expand
이름유형설명필수 항목

alertmanagerConfig

object

Alertmanager 구성을 정의합니다.

기본값:map[disabled:false]

false

logLevel

enum

구성된 구성 요소의 로그 수준을 설정합니다.

enum:debug, info, warn, error

기본값:info

false

namespaceSelector

object

MonitoringStack 리소스의 네임스페이스 선택기입니다.

  • 모든 것을 모니터링하려면 빈 맵 선택기로 설정합니다. 예: namespaceSelector: {}.
  • MonitoringStack 인스턴스가 생성된 네임스페이스에서 리소스를 모니터링하려면 null로 설정합니다. 예: namespaceSelector:.

false

nodeSelector

map[string]string

MonitoringStack Pod에 대한 노드 선택기를 정의합니다.

false

prometheusConfig

object

prometheus 구성을 정의합니다.

기본값:map[replicas:2]

false

resourceSelector

object

MonitoringStack 리소스의 라벨 선택기입니다.

  • 모든 것을 모니터링하려면 빈 맵 선택기로 설정합니다. 예: resourceSelector: {}.
  • 서비스 검색을 비활성화하려면 null로 설정합니다. 예: resourceSelector:.

false

resources

object

MonitoringStack Pod에 대한 리소스 요청 및 제한을 정의합니다.

default:map[limits:map[cpu:500m memory:512Mi] requests:map[cpu:100m memory:256Mi]]

false

retention

string

데이터 보존 기간입니다. 문자열은 [0-9]+(ms|s|m|h|d|d|w|y) (밀리초 초 몇 주)와 일치해야 합니다.

기본값:120h

false

허용 오차

[] 오브젝트

MonitoringStack Pod에 대한 허용 오차를 정의합니다.

false

6.3. MonitoringStack.spec.alertmanagerConfig

Alertmanager 구성을 정의합니다.

Expand
이름유형설명필수 항목

비활성화됨

boolean

Alertmanager 의 배포를 비활성화합니다.

기본값: false

false

webTLSConfig

object

Alertmanager 웹 서버에 대한 TLS 옵션을 구성합니다.

false

6.4. MonitoringStack.spec.alertmanagerConfig.webTLSConfig

Alertmanager 웹 서버에 대한 TLS 옵션을 구성합니다.

Expand
이름유형설명필수 항목

certificate

object

웹 서버의 TLS 공용 인증서에 대한 참조입니다.

true

certificateAuthority

object

웹 서버의 인증서를 확인하는 데 사용되는 루트 인증 기관에 대한 참조입니다.

true

privateKey

object

웹 서버의 TLS 개인 키에 대한 참조입니다.

true

6.5. MonitoringStack.spec.alertmanagerConfig.webTLSConfig.certificate

웹 서버의 TLS 공용 인증서에 대한 참조입니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

선택할 오브젝트 네임스페이스의 시크릿 이름입니다.

true

6.6. MonitoringStack.spec.alertmanagerConfig.webTLSConfig.certificateAuthority

웹 서버의 인증서를 확인하는 데 사용되는 루트 인증 기관에 대한 참조입니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

선택할 오브젝트 네임스페이스의 시크릿 이름입니다.

true

6.7. MonitoringStack.spec.alertmanagerConfig.webTLSConfig.privateKey

웹 서버의 TLS 개인 키에 대한 참조입니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

선택할 오브젝트 네임스페이스의 시크릿 이름입니다.

true

6.8. MonitoringStack.spec.namespaceSelector

MonitoringStack 리소스의 네임스페이스 선택기입니다.

  • 모든 것을 모니터링하려면 빈 맵 선택기로 설정합니다. 예: namespaceSelector: {}.
  • MonitoringStack 인스턴스가 생성된 네임스페이스에서 리소스를 모니터링하려면 null로 설정합니다. 예: namespaceSelector:.
Expand
이름유형설명필수 항목

matchExpressions

[] 오브젝트

matchExpressions 는 라벨 선택기 요구 사항 목록입니다. 요구 사항은 AND로 설정됩니다.

false

matchLabels

map[string]string

matchLabels 는 {key,value} 쌍으로 구성된 맵입니다. matchLabels 맵의 단일 {key,value}는 키 필드가 "key"이고 연산자는 "In"이고, values 배열에는 "value"만 포함된 matchExpressions 의 요소와 동일합니다. 요구 사항은 AND로 설정됩니다.

false

6.9. MonitoringStack.spec.namespaceSelector.matchExpressions[index]

레이블 선택기 요구 사항은 값, 키 및 키와 관련된 연산자를 포함하는 선택기입니다.

Expand
이름유형설명필수 항목

key

string

key 는 선택기가 적용되는 라벨 키입니다.

true

operator

string

Operator 는 일련의 값과의 키 관계를 나타냅니다. 유효한 연산자는 In,NotIn,ExistsDoesNotExist 입니다.

true

[]string

값은 문자열 값의 배열입니다. 연산자가 In 또는 NotIn 이면 값 배열은 비어 있지 않아야 합니다. 연산자가 Exists 또는 DoesNotExist 인 경우 값 배열은 비어 있어야 합니다. 이 배열은 전략적 병합 패치 중에 교체됩니다.

false

6.10. MonitoringStack.spec.prometheusConfig

Prometheus 구성을 정의합니다.

Expand
이름유형설명필수 항목

enableOtlpHttpReceiver

boolean

Prometheus가 otlp/http'protocol을 통해 OpenTelemetry Metrics를 수락하도록 활성화합니다. 기본값은 'false 입니다. 결과 엔드포인트는 /api/v1/otlp/v1/metrics 입니다.

false

enableRemoteWriteReceiver

boolean

Prometheus를 Prometheus 원격 쓰기 프로토콜의 수신자로 사용하도록 활성화합니다. 기본값은 false 입니다.

false

externalLabels

map[string]string

Prometheus의 ExternalLabels 를 정의합니다.

false

persistentVolumeClaim

object

Prometheus에 대한 영구 볼륨 클레임을 정의합니다.

false

remoteWrite

[] 오브젝트

Prometheus에 대한 원격 쓰기를 정의합니다.

false

replicas

integer

Prometheus 배포에 배포할 복제본/Pod 수입니다.

형식: int32

기본값: 2

최소: 0

false

scrapeInterval

string

스크랩 간 기본 간격입니다.

false

webTLSConfig

object

Prometheus 웹 서버에 대한 TLS 옵션을 구성합니다.

false

6.11. MonitoringStack.spec.prometheusConfig.persistentVolumeClaim

Prometheus에 대한 영구 볼륨 클레임을 정의합니다.

Expand
이름유형설명필수 항목

accessModes

[]string

accessModes 에는 볼륨에 필요한 액세스 모드가 포함되어 있습니다. 자세한 내용은 Kubernetes 문서 문서를 참조하십시오.

false

dataSource

object

datasource 필드를 사용하여 다음 중 하나를 지정할 수 있습니다.

  • 기존 VolumeSnapshot 오브젝트(snapshot.storage.k8s.io/VolumeSnapshot)
  • 기존 PVC(PersistentVolumeClaim)

프로비저너 또는 외부 컨트롤러에서 지정된 데이터 소스를 지원할 수 있는 경우 지정된 데이터 소스의 내용을 기반으로 새 볼륨을 생성합니다.

AnyVolumeDataSource 기능 게이트를 활성화하면 dataSource 콘텐츠가 dataSourceRef 에 복사되고 dataSourceRef.namespace 가 지정되지 않은 경우 dataSource Ref 콘텐츠가 dataSource에 복사됩니다. 네임스페이스를 지정하면 dataSourceRefdataSource 에 복사되지 않습니다.

false

dataSourceRef

object

dataSourceRef 는 비어 있지 않은 볼륨이 필요한 경우 볼륨을 데이터로 채울 오브젝트를 지정합니다. 비어 있지 않은 API 그룹(코어 오브젝트가 아님) 또는 PersistentVolumeClaim 오브젝트의 모든 오브젝트일 수 있습니다.

이 필드가 지정되면 지정된 오브젝트의 유형이 설치된 일부 볼륨 팝업 또는 동적 프로비저너와 일치하는 경우에만 볼륨 바인딩이 성공적으로 수행됩니다. 이 필드는 dataSource 필드의 기능을 대체하므로 두 필드가 모두 비어 있지 않은 경우 동일한 값이 있어야 합니다.

이전 버전과의 호환성을 위해 dataSourceRef네임스페이스 가 지정되지 않으면 둘 다 필드(dataSourcedataSourceRef)가 비어 있고 다른 하나는 비어 있지 않은 경우 자동으로 동일한 값으로 설정됩니다. dataSourceRef네임스페이스 가 지정되면dataSource 는 동일한 값으로 설정되지 않으며 비어 있어야 합니다.

dataSourcedataSourceRef 사이에는 세 가지 중요한 차이점이 있습니다.

  • dataSource 는 두 가지 특정 유형의 오브젝트만 허용하지만 dataSourceRef 에서는 코어가 아닌 오브젝트와 PersistentVolumeClaim 오브젝트를 허용합니다.
  • dataSource 는 허용하지 않는 값을 무시하지만(dropping) dataSourceRef 는 모든 값을 유지하고 허용하지 않는 값이 지정된 경우 오류를 생성합니다.
  • dataSource 는 로컬 오브젝트만 허용하지만 dataSourceRef 에서는 모든 네임스페이스의 오브젝트를 허용합니다.

beta: 이 필드를 사용하려면 AnyVolumeDataSource 기능 게이트를 활성화해야 합니다.

alpha: dataSourceRef 의 namespace 필드를 사용하려면 CrossNamespaceVolumeDataSource 기능 게이트를 활성화해야 합니다.

false

resources

object

resources 는 볼륨에 보유해야 하는 최소 리소스를 나타냅니다.

RecoverVolumeExpansionFailure 기능이 활성화된 경우 사용자는 이전 값보다 낮지만 클레임의 상태 필드에 기록된 용량보다 커야 하는 리소스 요구 사항을 지정할 수 있습니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

선택기

object

selector 는 바인딩에 대해 고려할 볼륨에 대한 레이블 쿼리입니다.

false

storageClassName

string

storageClassName 은 클레임에 필요한 StorageClass 의 이름입니다. 자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

volumeAttributesClassName

string

volumeAttributesClassName 을 사용하여 이 클레임에서 사용하는 VolumeAttributesClass 를 설정할 수 있습니다.

지정된 경우 CSI 드라이버는 해당 VolumeAttributesClass 에 정의된 특성으로 볼륨을 생성하거나 업데이트합니다. 클레임이 생성된 후 변경할 수 있으므로 storageClassName 과 다른 용도가 있습니다. 빈 문자열 값은 VolumeAttributesClass 가 클레임에 적용되지 않지만 설정된 후에는 이 필드를 빈 문자열로 재설정할 수 없음을 의미합니다.

지정되지 않고 PersistentVolumeClaim 이 바인딩되지 않은 경우 기본 VolumeAttributesClasspersistentvolume 컨트롤러에서 설정합니다. volumeAttributesClass 에서 참조하는 리소스가 없는 경우, 리소스가 존재할 때까지 modifyVolumeStatus 필드에 반영된 대로 이 PersistentVolumeClaimPending 상태로 설정됩니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

beta: 이 필드를 사용하려면 VolumeAttributesClass 기능 게이트를 활성화해야 합니다(기본적으로 꺼짐).

false

volumeMode

string

volumeMode 는 클레임에 필요한 볼륨 유형을 정의합니다. claim 사양에 포함되지 않은 경우 Filesystem 의 값이 포함됩니다.

false

volumeName

string

volumeName 은 이 클레임을 지원하는 PersistentVolume 에 대한 바인딩 참조입니다.

false

6.12. MonitoringStack.spec.prometheusConfig.persistentVolumeClaim.dataSource

datasource 필드를 사용하여 다음 중 하나를 지정할 수 있습니다.

  • 기존 VolumeSnapshot 오브젝트(snapshot.storage.k8s.io/VolumeSnapshot)
  • 기존 PVC(PersistentVolumeClaim)

프로비저너 또는 외부 컨트롤러에서 지정된 데이터 소스를 지원할 수 있는 경우 지정된 데이터 소스의 내용을 기반으로 새 볼륨을 생성합니다. AnyVolumeDataSource 기능 게이트를 활성화하면 dataSource 콘텐츠가 dataSourceRef 에 복사되고 dataSourceRef.namespace 가 지정되지 않은 경우 dataSource Ref 콘텐츠가 dataSource에 복사됩니다. 네임스페이스를 지정하면 dataSourceRefdataSource 에 복사되지 않습니다.

Expand
이름유형설명필수 항목

kind

string

kind 는 참조되는 리소스 유형입니다.

true

name

string

name 은 참조되는 리소스의 이름입니다.

true

apiGroup

string

apiGroup 은 참조 중인 리소스의 그룹입니다. apiGroup 을 지정하지 않으면 코어 API 그룹에 지정된 종류가 있어야 합니다. 다른 타사 유형의 경우 apiGroup 이 필요합니다.

false

6.13. MonitoringStack.spec.prometheusConfig.persistentVolumeClaim.dataSourceRef

dataSourceRef 는 비어 있지 않은 볼륨이 필요한 경우 볼륨을 데이터로 채울 오브젝트를 지정합니다. 비어 있지 않은 API 그룹(코어 오브젝트가 아님) 또는 PersistentVolumeClaim 오브젝트의 모든 오브젝트일 수 있습니다. 이 필드가 지정되면 지정된 오브젝트의 유형이 설치된 일부 볼륨 팝업 또는 동적 프로비저너와 일치하는 경우에만 볼륨 바인딩이 성공적으로 수행됩니다.

이 필드는 dataSource 필드의 기능을 대체하므로 두 필드가 모두 비어 있지 않은 경우 동일한 값이 있어야 합니다. 이전 버전과의 호환성을 위해 dataSourceRef네임스페이스 가 지정되지 않으면 둘 다 필드(dataSourcedataSourceRef)가 비어 있고 다른 하나는 비어 있지 않은 경우 자동으로 동일한 값으로 설정됩니다. dataSourceRef네임스페이스 가 지정되면dataSource 는 동일한 값으로 설정되지 않으며 비어 있어야 합니다.

dataSourcedataSourceRef 사이에는 세 가지 중요한 차이점이 있습니다.

  • dataSource 는 두 가지 특정 유형의 오브젝트만 허용하지만 dataSourceRef 에서는 코어가 아닌 오브젝트와 PersistentVolumeClaim 오브젝트를 허용합니다.
  • dataSource 는 허용하지 않는 값을 무시하지만(dropping) dataSourceRef 는 모든 값을 유지하고 허용하지 않는 값이 지정된 경우 오류를 생성합니다.
  • dataSource 는 로컬 오브젝트만 허용하지만 dataSourceRef 에서는 모든 네임스페이스의 오브젝트를 허용합니다.

beta: 이 필드를 사용하려면 AnyVolumeDataSource 기능 게이트를 활성화해야 합니다.

alpha: dataSourceRef 의 namespace 필드를 사용하려면 CrossNamespaceVolumeDataSource 기능 게이트를 활성화해야 합니다.

Expand
이름유형설명필수 항목

kind

string

kind 는 참조되는 리소스 유형입니다.

true

name

string

name 은 참조되는 리소스의 이름입니다.

true

apiGroup

string

apiGroup 은 참조 중인 리소스의 그룹입니다.

apiGroup 을 지정하지 않으면 코어 API 그룹에 지정된 종류가 있어야 합니다. 다른 타사 유형의 경우 apiGroup 이 필요합니다.

false

네임스페이스

string

namespace 는 참조 중인 리소스의 네임스페이스입니다.

네임스페이스가 지정되면 해당 네임스페이스의 소유자가 참조를 수락할 수 있도록 참조 네임스페이스에 gateway.networking.k8s.io/ReferenceGrant 오브젝트가 필요합니다. 자세한 내용은 ReferenceGrant 문서를 참조하십시오.

alpha: 이 필드에는 CrossNamespaceVolumeDataSource 기능 게이트를 활성화해야 합니다.

false

6.14. MonitoringStack.spec.prometheusConfig.persistentVolumeClaim.resources

resources 는 볼륨에 보유해야 하는 최소 리소스를 나타냅니다.

RecoverVolumeExpansionFailure 기능이 활성화된 경우 사용자는 이전 값보다 낮지만 클레임의 상태 필드에 기록된 용량보다 커야 하는 리소스 요구 사항을 지정할 수 있습니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

Expand
이름유형설명필수 항목

limits

map[string]int 또는 string

제한은 허용되는 최대 컴퓨팅 리소스 양을 나타냅니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

requests

map[string]int 또는 string

요청 은 필요한 최소 컴퓨팅 리소스 양을 설명합니다.

컨테이너에 대한 Requests 를 생략하면 구현 정의된 값을 제외하고 명시적으로 지정된 경우 기본값은 Limits 로 설정됩니다. 요청 은 제한을 초과할 없습니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

6.15. MonitoringStack.spec.prometheusConfig.persistentVolumeClaim.selector

selector 는 바인딩에 대해 고려할 볼륨에 대한 레이블 쿼리입니다.

Expand
이름유형설명필수 항목

matchExpressions

[] 오브젝트

matchExpressions 는 라벨 선택기 요구 사항 목록입니다. 요구 사항은 AND로 설정됩니다.

false

matchLabels

map[string]string

matchLabels 는 {key,value} 쌍으로 구성된 맵입니다.

matchLabels 맵의 단일 {key,value}는 키 필드가 "key"이고 연산자는 "In"이고, values 배열에는 "value"만 포함된 matchExpressions 의 요소와 동일합니다. 요구 사항은 AND로 설정됩니다.

false

레이블 선택기 요구 사항은 값, 키 및 키와 관련된 연산자를 포함하는 선택기입니다.

Expand
이름유형설명필수 항목

key

string

key 는 선택기가 적용되는 라벨 키입니다.

true

operator

string

Operator 는 일련의 값과의 키 관계를 나타냅니다. 유효한 연산자는 In,NotIn,ExistsDoesNotExist 입니다.

true

[]string

값은 문자열 값의 배열입니다.

연산자가 In 또는 NotIn 이면 값 배열은 비어 있지 않아야 합니다. 연산자가 Exists 또는 DoesNotExist 인 경우 값 배열은 비어 있어야 합니다. 이 배열은 전략적 병합 패치 중에 교체됩니다.

false

6.17. MonitoringStack.spec.prometheusConfig.remoteWrite[index]

RemoteWriteSpec 은 Prometheus의 샘플을 원격 끝점에 작성할 구성을 정의합니다.

Expand
이름유형설명필수 항목

url

string

샘플을 보낼 끝점의 URL입니다.

true

권한 부여

object

URL에 대한 권한 부여 섹션입니다.

  • Prometheus >= v2.26.0이 필요합니다.
  • sigv4,basicAuth,oauth2 또는 azureAd 와 동시에 설정할 수 없습니다.

false

azureAd

object

URL에 대한 AzureAD입니다.

  • Prometheus >= v2.45.0이 필요합니다.
  • 권한 부여,basicAuth,oauth2 또는 sigv4 와 동시에 설정할 수 없습니다.

false

basicAuth

object

URL의 basicauth 구성입니다.

  • sigv4,권한 부여,oauth2 또는 azureAd 와 동시에 설정할 수 없습니다.

false

bearerToken

string

경고: 토큰 값이 일반 텍스트로 표시되므로 이 필드를 사용해서는 안 됩니다. 권한 부여를 사용하는 것이 좋습니다.

더 이상 사용되지 않음: 향후 릴리스에서 제거될 예정입니다.

false

bearerTokenFile

string

URL에 대한 전달자 토큰을 읽을 파일입니다.

더 이상 사용되지 않음: 향후 릴리스에서 제거될 예정입니다. 권한 부여를 사용하는 것이 좋습니다.

false

enableHTTP2

boolean

HTTP2를 활성화할지 여부입니다.

false

followRedirects

boolean

HTTP 요청이 HTTP 3xx 리디렉션을 따르는지 여부를 구성합니다.

Prometheus >= v2.26.0이 필요합니다.

false

headers

map[string]string

각 원격 쓰기 요청과 함께 보낼 사용자 지정 HTTP 헤더입니다. Prometheus 자체에서 설정한 헤더를 덮어쓸 수 없습니다.

Prometheus >= v2.25.0이 필요합니다.

false

messageVersion

enum

엔드포인트에 쓸 때 사용할 원격 쓰기 메시지의 버전입니다.

  • Version1.0 은 Remote Write 1.0에 도입된 prometheus.WriteRequest protobuf 메시지에 해당합니다. *Version2.0 은 Remote Write 2.0에 도입된 io.prometheus.write.v2.Request protobuf 메시지에 해당합니다.
  • 버전2.0 을 선택하면 스크랩된 메트릭의 메타데이터를 WAL에 추가하도록 Prometheus가 자동으로 구성됩니다.
  • 이 필드를 설정하기 전에 원격 스토리지 공급자에게 지원하는 메시지 버전을 참조하십시오.
  • Prometheus >= v2.54.0이 필요합니다.

Enum: V1.0, V2.0

false

metadataConfig

object

MetadataConfig 는 시계열 메타데이터를 원격 스토리지로 전송합니다.

false

name

string

원격 쓰기 대기열의 이름, 지정된 경우 고유해야 합니다. 이름은 큐를 구분하기 위해 메트릭 및 로깅에 사용됩니다.

Prometheus >= v2.15.0이 필요합니다.

false

noProxy

string

noProxy 는 프록시에서 제외해야 하는 IP, CIDR 표기법 또는 도메인 이름을 포함할 수 있는 쉼표로 구분된 문자열입니다. IP 및 도메인 이름에는 포트 번호가 포함될 수 있습니다.

Prometheus >= v2.43.0 또는 Alertmanager >= 0.25.0이 필요합니다.

false

oauth2

object

URL에 대한 OAuth2 구성입니다.

  • Prometheus >= v2.27.0이 필요합니다.
  • sigv4,authorization,basicAuth 또는 azureAd 와 동시에 설정할 수 없습니다.

false

proxyConnectHeader

map[string][]object

ProxyConnectHeader 은 선택적으로 CONNECT 요청 중에 프록시에 보낼 헤더를 지정합니다.

Prometheus >= v2.43.0 또는 Alertmanager >= 0.25.0이 필요합니다.

false

proxyFromEnvironment

boolean

환경 변수(HTTP_PROXY,HTTPS_PROXY, NO_PROXY)로 정의된 프록시 구성을 사용할지 여부입니다.

Prometheus >= v2.43.0 또는 Alertmanager >= 0.25.0이 필요합니다.

false

proxyUrl

string

proxyURL 은 사용할 HTTP 프록시 서버를 정의합니다.

false

queueConfig

object

QueueConfig 를 사용하면 원격 쓰기 큐 매개 변수를 조정할 수 있습니다.

false

remoteTimeout

string

원격 쓰기 엔드포인트에 대한 요청 제한 시간입니다.

false

sendExemplars

boolean

원격 쓰기를 통해 예시를 전송할 수 있습니다. 예선-스토리지 자체를 먼저 스크랩하려면 spec.enableFeatures 옵션을 사용하여 활성화해야 합니다.

Prometheus >= v2.27.0이 필요합니다.

false

sendNativeHistograms

boolean

원격 쓰기를 통해 스파스 히스토그램이라고도 하는 네이티브 히스토그램을 전송할 수 있습니다.

Prometheus >= v2.40.0이 필요합니다.

false

sigv4

object

Sigv4 에서는 URL에 대해 AWS의 서명 확인 4를 구성할 수 있습니다.

  • Prometheus >= v2.26.0이 필요합니다.
  • 권한 부여,basicAuth,oauth2 또는 azureAd 와 동시에 설정할 수 없습니다.

false

tlsConfig

object

URL에 사용할 TLS 구성입니다.

false

writeRelabelConfigs

[] 오브젝트

원격 쓰기 레이블 구성 목록입니다.

false

6.18. MonitoringStack.spec.prometheusConfig.remoteWrite[index].authorization

URL에 대한 권한 부여 섹션입니다.

  • Prometheus >= v2.26.0이 필요합니다.
  • sigv4,basicAuth,oauth2 또는 azureAd 와 동시에 설정할 수 없습니다.
Expand
이름유형설명필수 항목

인증 정보

object

인증을 위한 인증 정보가 포함된 네임스페이스에서 Secret의 키를 선택합니다.

false

credentialsFile

string

인증 정보와 함께 사용할 수 있는 시크릿을 읽을 수 있는 파일입니다.

false

type

string

인증 유형을 정의합니다. 값은 대소문자를 구분하지 않습니다.

"basic"은 지원되는 값이 아닙니다.

기본값: "Bearer"

false

6.19. MonitoringStack.spec.prometheusConfig.remoteWrite[index].authorization.credentials

인증을 위한 인증 정보가 포함된 네임스페이스에서 Secret의 키를 선택합니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다. 자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

시크릿 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

6.20. MonitoringStack.spec.prometheusConfig.remoteWrite[index].azureAd

URL에 대한 AzureAD입니다.

  • Prometheus >= v2.45.0이 필요합니다.
  • 권한 부여,basicAuth,oauth2 또는 sigv4 와 동시에 설정할 수 없습니다.
Expand
이름유형설명필수 항목

cloud

enum

Azure 클라우드입니다. 옵션은 'AzurePublic', 'AzureChina' 또는 'AzureGovernment'입니다.

Enum: AzureChina, AzureGovernment, AzurePublic

false

managedIdentity

object

ManagedIdentity 는 Azure 사용자가 할당한 관리 ID를 정의합니다. oauth 또는 sdk 와 동시에 설정할 수 없습니다.

false

oauth

object

OAuth 는 인증에 사용되는 oauth 구성을 정의합니다.

  • managedIdentity 또는 sdk 와 동시에 설정할 수 없습니다.
  • Prometheus >= v2.48.0이 필요합니다.

false

sdk

object

SDK 는 인증에 사용되는 Azure SDK 구성을 정의합니다. Azure SDK 인증을 참조하십시오.

  • oauth 또는 managedIdentity 와 동시에 설정할 수 없습니다.
  • Prometheus >= 2.52.0이 필요합니다.

false

6.21. MonitoringStack.spec.prometheusConfig.remoteWrite[index].azureAd.managedIdentity

ManagedIdentity는 Azure 사용자가 할당한 관리 ID를 정의합니다.

  • oauth 또는 sdk 와 동시에 설정할 수 없습니다.
Expand
이름유형설명필수 항목

clientId

string

클라이언트 ID

true

6.22. MonitoringStack.spec.prometheusConfig.remoteWrite[index].azureAd.oauth

OAuth 는 인증에 사용되는 oauth 구성을 정의합니다.

  • managedIdentity 또는 sdk 와 동시에 설정할 수 없습니다.
  • Prometheus >= v2.48.0이 필요합니다.
Expand
이름유형설명필수 항목

clientId

string

ClientID 는 인증에 사용되는 Azure Active Directory 애플리케이션의 clientId입니다.

true

clientSecret

object

clientSecret 은 인증에 사용되는 Azure Active Directory 애플리케이션의 클라이언트 시크릿을 포함하는 보안의 키를 지정합니다.

true

tenantId

string

tenantId 는 인증에 사용되는 Azure Active Directory 애플리케이션의 테넌트 ID입니다.

true

6.23. MonitoringStack.spec.prometheusConfig.remoteWrite[index].azureAd.oauth.clientSecret

clientSecret 은 인증에 사용되는 Azure Active Directory 애플리케이션의 클라이언트 시크릿을 포함하는 보안의 키를 지정합니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

시크릿 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

6.24. MonitoringStack.spec.prometheusConfig.remoteWrite[index].azureAd.sdk

SDK 는 인증에 사용되는 Azure SDK 구성을 정의합니다.

자세한 내용은 Azure SDK 인증을 참조하십시오.

  • oauth 또는 managedIdentity 와 동시에 설정할 수 없습니다.
  • Prometheus >= 2.52.0이 필요합니다.
Expand
이름유형설명필수 항목

tenantId

string

tenantId 는 인증에 사용되는 azure 활성 디렉터리 애플리케이션의 테넌트 ID입니다.

false

6.25. MonitoringStack.spec.prometheusConfig.remoteWrite[index].basicAuth

URL의 basicauth 구성입니다.

  • sigv4,권한 부여,oauth2 또는 azureAd 와 동시에 설정할 수 없습니다.
Expand
이름유형설명필수 항목

암호

object

password 는 인증을 위한 암호가 포함된 보안의 키를 지정합니다.

false

사용자 이름

object

username 은 인증을 위한 사용자 이름이 포함된 보안의 키를 지정합니다.

false

6.26. MonitoringStack.spec.prometheusConfig.remoteWrite[index].basicAuth.password

password 는 인증을 위한 암호가 포함된 보안의 키를 지정합니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

시크릿 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

6.27. MonitoringStack.spec.prometheusConfig.remoteWrite[index].basicAuth.username

username 은 인증을 위한 사용자 이름이 포함된 보안의 키를 지정합니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

시크릿 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

6.28. MonitoringStack.spec.prometheusConfig.remoteWrite[index].metadataConfig

MetadataConfig 는 시계열 메타데이터를 원격 스토리지로 전송합니다.

Expand
이름유형설명필수 항목

전송

boolean

지표 메타데이터가 원격 스토리지로 전송되는지 여부를 정의합니다.

false

sendInterval

string

메트릭 메타데이터를 원격 스토리지로 전송하는 빈도를 정의합니다.

false

6.29. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2

URL에 대한 OAuth2 구성입니다.

  • Prometheus >= v2.27.0이 필요합니다.
  • sigv4,authorization,basicAuth 또는 azureAd 와 동시에 설정할 수 없습니다.
Expand
이름유형설명필수 항목

clientId

object

ClientID는 OAuth2 클라이언트 의 ID를 포함하는 Secret 또는 ConfigMap 오브젝트의 키를 지정합니다.

true

clientSecret

object

clientSecret 은 OAuth2 클라이언트의 시크릿을 포함하는 보안의 키를 지정합니다.

true

tokenUrl

string

tokenURL 은 토큰을 가져오도록 URL을 구성합니다.

true

endpointParams

map[string]string

endpointParams 는 토큰 URL에 추가할 HTTP 매개 변수를 구성합니다.

false

noProxy

string

noProxy 는 프록시에서 제외해야 하는 IP, CIDR 표기법 또는 도메인 이름을 포함할 수 있는 쉼표로 구분된 문자열입니다. IP 및 도메인 이름에는 포트 번호가 포함될 수 있습니다.

Prometheus >= v2.43.0 또는 Alertmanager >= 0.25.0이 필요합니다.

false

proxyConnectHeader

map[string][]object

ProxyConnectHeader은 선택적으로 CONNECT 요청 중에 프록시에 보낼 헤더를 지정합니다.

Prometheus >= v2.43.0 또는 Alertmanager >= 0.25.0이 필요합니다.

false

proxyFromEnvironment

boolean

환경 변수(HTTP_PROXY,HTTPS_PROXY, NO_PROXY)로 정의된 프록시 구성을 사용할지 여부입니다.

Prometheus >= v2.43.0 또는 Alertmanager >= 0.25.0이 필요합니다.

false

proxyUrl

string

proxyURL 은 사용할 HTTP 프록시 서버를 정의합니다.

false

범위

[]string

범위는 토큰 요청에 사용되는 OAuth2 범위를 정의합니다.

false

tlsConfig

object

OAuth2 서버에 연결할 때 사용할 TLS 구성입니다.

Prometheus >= v2.43.0이 필요합니다.

false

6.30. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.clientId

ClientID는 OAuth2 클라이언트 의 ID가 포함된 Secret 또는 ConfigMap의 키를 지정합니다.

Expand
이름유형설명필수 항목

configMap

object

대상에 사용할 데이터가 포함된 ConfigMap입니다.

false

Secret

object

대상에 사용할 데이터가 포함된 시크릿입니다.

false

6.31. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.clientId.configMap

대상에 사용할 데이터가 포함된 ConfigMap입니다.

Expand
이름유형설명필수 항목

key

string

선택할 키입니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

ConfigMap 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

6.32. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.clientId.secret

대상에 사용할 데이터가 포함된 시크릿입니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

시크릿 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

6.33. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.clientSecret

clientSecret 은 OAuth2 클라이언트의 시크릿을 포함하는 보안의 키를 지정합니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

시크릿 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

SecretKeySelector는 시크릿의 키를 선택합니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

시크릿 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

6.35. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.tlsConfig

OAuth2 서버에 연결할 때 사용할 TLS 구성입니다.

  • Prometheus >= v2.43.0이 필요합니다.
Expand
이름유형설명필수 항목

ca

object

서버 인증서를 확인할 때 사용되는 인증 기관입니다.

false

인증서

object

클라이언트 인증을 수행할 때 제공할 클라이언트 인증서입니다.

false

insecureSkipVerify

boolean

대상 인증서 검증을 비활성화합니다.

false

keySecret

object

대상에 대한 클라이언트 키 파일이 포함된 시크릿입니다.

false

maxVersion

enum

허용되는 최대 TLS 버전입니다.

Prometheus >= v2.41.0이 필요합니다.

Enum: TLS10, TLS11, TLS12, TLS13

false

minVersion

enum

허용되는 최소 TLS 버전.

Prometheus >= v2.35.0이 필요합니다.

Enum: TLS10, TLS11, TLS12, TLS13

false

serverName

string

대상의 호스트 이름을 확인하는 데 사용됩니다.

false

6.36. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.tlsConfig.ca

서버 인증서를 확인할 때 사용되는 인증 기관입니다.

Expand
이름유형설명필수 항목

configMap

object

대상에 사용할 데이터가 포함된 ConfigMap입니다.

false

Secret

object

대상에 사용할 데이터가 포함된 시크릿입니다.

false

대상에 사용할 데이터가 포함된 ConfigMap입니다.

Expand
이름유형설명필수 항목

key

string

선택할 키입니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

ConfigMap 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

6.38. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.tlsConfig.ca.secret

대상에 사용할 데이터가 포함된 시크릿입니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

시크릿 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

6.39. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.tlsConfig.cert

클라이언트 인증을 수행할 때 제공할 클라이언트 인증서입니다.

Expand
이름유형설명필수 항목

configMap

object

대상에 사용할 데이터가 포함된 ConfigMap입니다.

false

Secret

object

대상에 사용할 데이터가 포함된 시크릿입니다.

false

대상에 사용할 데이터가 포함된 ConfigMap입니다.

Expand
이름유형설명필수 항목

key

string

선택할 키입니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

ConfigMap 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

6.41. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.tlsConfig.cert.secret

대상에 사용할 데이터가 포함된 시크릿입니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

시크릿 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

6.42. MonitoringStack.spec.prometheusConfig.remoteWrite[index].oauth2.tlsConfig.keySecret

대상에 대한 클라이언트 키 파일이 포함된 시크릿입니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

시크릿 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

SecretKeySelector는 시크릿의 키를 선택합니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

시크릿 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

6.44. MonitoringStack.spec.prometheusConfig.remoteWrite[index].queueConfig

QueueConfig를 사용하면 원격 쓰기 큐 매개 변수를 조정할 수 있습니다.

Expand
이름유형설명필수 항목

batchSendDeadline

string

BatchSendDeadline 은 샘플이 버퍼에서 대기하는 최대 시간입니다.

false

capacity

integer

capacity 는 shard를 삭제하기 전에 버퍼링할 샘플 수입니다.

false

maxBackoff

string

MaxBackoff 는 최대 재시도 지연입니다.

false

maxRetries

integer

MaxRetries 는 복구 가능한 오류에 대해 일괄 처리를 재시도할 수 있는 최대 횟수입니다.

false

maxSamplesPerSend

integer

MaxSamplesPerSend 는 전송당 최대 샘플 수입니다.

false

maxShards

integer

MaxShards 는 최대 shard 수, 즉 동시성 양입니다.

false

minBackoff

string

MinBackoff 는 초기 재시도 지연입니다. 모든 재시도에 대해 두 배가됩니다.

false

minShards

integer

MinShards 는 최소 shard 수, 즉 동시성 양입니다.

false

retryOnRateLimit

boolean

원격 쓰기 스토리지에서 429 상태 코드를 수신할 때 재시도합니다.

이는 실험적인 기능이며 향후 릴리스의 중단으로 변경될 수 있습니다.

false

sampleAgeLimit

string

SampleAgeLimit 는 제한보다 오래된 샘플을 삭제합니다.

Prometheus >= v2.50.0이 필요합니다.

false

6.45. MonitoringStack.spec.prometheusConfig.remoteWrite[index].sigv4

Sigv4에서는 URL에 대해 AWS의 서명 확인 4를 구성할 수 있습니다.

  • Prometheus >= v2.26.0이 필요합니다.
  • 권한 부여,basicAuth,oauth2 또는 azureAd 와 동시에 설정할 수 없습니다.
Expand
이름유형설명필수 항목

accessKey

object

AccessKey 는 AWS API 키입니다. 지정하지 않으면 환경 변수 AWS_ACCESS_KEY_ID 가 사용됩니다.

false

profile

string

프로필 은 인증하는 데 사용되는 이름이 AWS 프로필입니다.

false

region

string

리전 은 AWS 리전입니다. 비어 있는 경우 기본 인증 정보 체인의 리전이 사용됩니다.

false

roleArn

string

RoleArn 은 인증에 사용되는 이름이 지정된 AWS 프로필입니다.

false

secretKey

object

SecretKey 는 AWS API 시크릿입니다. 지정하지 않으면 환경 변수 AWS_SECRET_ACCESS_KEY 가 사용됩니다.

false

6.46. MonitoringStack.spec.prometheusConfig.remoteWrite[index].sigv4.accessKey

AccessKey 는 AWS API 키입니다. 지정하지 않으면 환경 변수 AWS_ACCESS_KEY_ID 가 사용됩니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

시크릿 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

6.47. MonitoringStack.spec.prometheusConfig.remoteWrite[index].sigv4.secretKey

SecretKey 는 AWS API 시크릿입니다. 지정하지 않으면 환경 변수 AWS_SECRET_ACCESS_KEY 가 사용됩니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

시크릿 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

6.48. MonitoringStack.spec.prometheusConfig.remoteWrite[index].tlsConfig

URL에 사용할 TLS 구성입니다.

Expand
이름유형설명필수 항목

ca

object

서버 인증서를 확인할 때 사용되는 인증 기관입니다.

false

caFile

string

대상에 사용할 Prometheus 컨테이너의 CA 인증서 경로입니다.

false

인증서

object

클라이언트 인증을 수행할 때 제공할 클라이언트 인증서입니다.

false

certFile

string

대상의 Prometheus 컨테이너에 있는 클라이언트 인증서 파일의 경로입니다.

false

insecureSkipVerify

boolean

대상 인증서 검증을 비활성화합니다.

false

keyFile

string

대상의 Prometheus 컨테이너에 있는 클라이언트 키 파일의 경로입니다.

false

keySecret

object

대상에 대한 클라이언트 키 파일이 포함된 시크릿입니다.

false

maxVersion

enum

허용되는 최대 TLS 버전입니다.

Prometheus >= v2.41.0이 필요합니다.

Enum: TLS10, TLS11, TLS12, TLS13

false

minVersion

enum

허용되는 최소 TLS 버전.

Prometheus >= v2.35.0이 필요합니다.

Enum: TLS10, TLS11, TLS12, TLS13

false

serverName

string

대상의 호스트 이름을 확인하는 데 사용됩니다.

false

6.49. MonitoringStack.spec.prometheusConfig.remoteWrite[index].tlsConfig.ca

서버 인증서를 확인할 때 사용되는 인증 기관입니다.

Expand
이름유형설명필수 항목

configMap

object

대상에 사용할 데이터가 포함된 ConfigMap입니다.

false

Secret

object

대상에 사용할 데이터가 포함된 시크릿입니다.

false

6.50. MonitoringStack.spec.prometheusConfig.remoteWrite[index].tlsConfig.ca.configMap

대상에 사용할 데이터가 포함된 ConfigMap입니다.

Expand
이름유형설명필수 항목

key

string

선택할 키입니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

ConfigMap 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

6.51. MonitoringStack.spec.prometheusConfig.remoteWrite[index].tlsConfig.ca.secret

대상에 사용할 데이터가 포함된 시크릿입니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

시크릿 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

6.52. MonitoringStack.spec.prometheusConfig.remoteWrite[index].tlsConfig.cert

클라이언트 인증을 수행할 때 제공할 클라이언트 인증서입니다.

Expand
이름유형설명필수 항목

configMap

object

대상에 사용할 데이터가 포함된 ConfigMap입니다.

false

Secret

object

대상에 사용할 데이터가 포함된 시크릿입니다.

false

6.53. MonitoringStack.spec.prometheusConfig.remoteWrite[index].tlsConfig.cert.configMap

대상에 사용할 데이터가 포함된 ConfigMap입니다.

Expand
이름유형설명필수 항목

key

string

선택할 키입니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

ConfigMap 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

6.54. MonitoringStack.spec.prometheusConfig.remoteWrite[index].tlsConfig.cert.secret

대상에 사용할 데이터가 포함된 시크릿입니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

시크릿 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

6.55. MonitoringStack.spec.prometheusConfig.remoteWrite[index].tlsConfig.keySecret

대상에 대한 클라이언트 키 파일이 포함된 시크릿입니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

추천자의 이름입니다. 이 필드는 효과적으로 필요하지만 이전 버전과의 호환성으로 인해 비어 있을 수 있습니다. 여기에 빈 값이 있는 이 유형의 인스턴스는 거의 잘못된 것입니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

optional

boolean

시크릿 또는 해당 키를 정의해야 하는지 여부를 지정합니다.

false

6.56. MonitoringStack.spec.prometheusConfig.remoteWrite[index].writeRelabelConfigs[index]

RelabelConfig를 사용하면 대상, 경고, 스크랩된 샘플 및 원격 쓰기 샘플에 대한 레이블 세트를 동적 다시 작성할 수 있습니다.

자세한 내용은 Prometheus Docs를 참조하십시오.

Expand
이름유형설명필수 항목

작업

enum

regex 일치를 기반으로 수행할 작업입니다.

  • 대문자 및 소문자 작업에는 Prometheus >= v2.36.0이 필요합니다.
  • DropEqualKeepEqual 작업에는 Prometheus >= v2.41.0이 필요합니다.

enum: ,Replace, keep ,keep,drop, drop , drop ,hashmod,HashMod,labelmap, labeldrop ,labeldrop, labelkeep ,labelkeep, LabelKeep,소문자 ,소문자 ,대문자,Uppercase,keepequal,KeepEqual,dropequal,DropEqual

기본값:replace

false

modulus

integer

소스 레이블 값의 해시를 사용합니다.

작업이 HashMod 인 경우에만 적용됩니다.

형식: int64

false

regex

string

추출된 값이 일치하는 정규식입니다.

false

교체

string

정규식과 일치하는 경우 Replace 작업이 수행되는 대체 값입니다.

regex 캡처 그룹을 사용할 수 있습니다.

false

구분 기호

string

구분 기호는 연결된 SourceLabels 사이의 문자열입니다.

false

sourceLabels

[]string

소스 레이블은 기존 라벨에서 값을 선택합니다. 해당 콘텐츠는 구성된 분리기를 사용하여 연결되고 구성된 정규식과 일치합니다.

false

targetLabel

string

결과 문자열이 대체에 기록되는 레이블입니다.

Replace,HashMod,소문자 ,Uppercase ,KeepEqualDropEqual 작업 필수 항목입니다.

regex 캡처 그룹을 사용할 수 있습니다.

false

6.57. MonitoringStack.spec.prometheusConfig.webTLSConfig

Prometheus 웹 서버에 대한 TLS 옵션을 구성합니다.

Expand
이름유형설명필수 항목

certificate

object

웹 서버의 TLS 공용 인증서에 대한 참조입니다.

true

certificateAuthority

object

웹 서버의 인증서를 확인하는 데 사용되는 루트 인증 기관에 대한 참조입니다.

true

privateKey

object

웹 서버의 TLS 개인 키에 대한 참조입니다.

true

6.58. MonitoringStack.spec.prometheusConfig.webTLSConfig.certificate

웹 서버의 TLS 공용 인증서에 대한 참조입니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

선택할 오브젝트 네임스페이스의 시크릿 이름입니다.

true

6.59. MonitoringStack.spec.prometheusConfig.webTLSConfig.certificateAuthority

웹 서버의 인증서를 확인하는 데 사용되는 루트 인증 기관에 대한 참조입니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

선택할 오브젝트 네임스페이스의 시크릿 이름입니다.

true

6.60. MonitoringStack.spec.prometheusConfig.webTLSConfig.privateKey

웹 서버의 TLS 개인 키에 대한 참조입니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

선택할 오브젝트 네임스페이스의 시크릿 이름입니다.

true

6.61. MonitoringStack.spec.resourceSelector

MonitoringStack 리소스의 라벨 선택기입니다.

  • 모든 것을 모니터링하려면 빈 맵 선택기로 설정합니다. 예: resourceSelector: {}.
  • 서비스 검색을 비활성화하려면 null로 설정합니다. 예: resourceSelector:.
Expand
이름유형설명필수 항목

matchExpressions

[] 오브젝트

matchExpressions 는 라벨 선택기 요구 사항 목록입니다. 요구 사항은 AND로 설정됩니다.

false

matchLabels

map[string]string

matchLabels 는 {key,value} 쌍으로 구성된 맵입니다. matchLabels 맵의 단일 {key,value}는 키 필드가 "key"이고 연산자는 "In"이고, values 배열에는 "value"만 포함된 matchExpressions 의 요소와 동일합니다. 요구 사항은 AND로 설정됩니다.

false

6.62. MonitoringStack.spec.resourceSelector.matchExpressions[index]

레이블 선택기 요구 사항은 값, 키 및 키와 관련된 연산자를 포함하는 선택기입니다.

Expand
이름유형설명필수 항목

key

string

key 는 선택기가 적용되는 라벨 키입니다.

true

operator

string

Operator 는 일련의 값과의 키 관계를 나타냅니다. 유효한 연산자는 In,NotIn,ExistsDoesNotExist 입니다.

true

[]string

값은 문자열 값의 배열입니다. 연산자가 In 또는 NotIn 이면 값 배열은 비어 있지 않아야 합니다. 연산자가 Exists 또는 DoesNotExist 인 경우 값 배열은 비어 있어야 합니다. 이 배열은 전략적 병합 패치 중에 교체됩니다.

false

6.63. MonitoringStack.spec.resources

MonitoringStack Pod에 대한 리소스 요청 및 제한을 정의합니다.

Expand
이름유형설명필수 항목

claims

[] 오브젝트

클레임 은 이 컨테이너에서 사용하는 spec.resourceClaims 에 정의된 리소스의 이름을 나열합니다.

이 필드는 alpha 필드이며 DynamicResourceAllocation 기능 게이트를 활성화해야 합니다.

이 필드는 변경할 수 없습니다. 컨테이너에 대해서만 설정할 수 있습니다.

false

limits

map[string]int 또는 string

제한은 허용되는 최대 컴퓨팅 리소스 양을 나타냅니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

requests

map[string]int 또는 string

요청 은 필요한 최소 컴퓨팅 리소스 양을 설명합니다. 컨테이너에 대한 Requests 를 생략하면 구현 정의된 값을 제외하고 명시적으로 지정된 경우 기본값은 Limits 로 설정됩니다. 요청 은 제한을 초과할 없습니다.

자세한 내용은 Kubernetes 문서문서를 참조하십시오.

false

6.64. MonitoringStack.spec.resources.claims[index]

ResourceClaimPodSpec.ResourceClaims 의 하나의 항목을 참조합니다.

Expand
이름유형설명필수 항목

name

string

name은 이 필드가 사용되는 Pod의 pod.spec.resourceClaims 에서 하나의 항목 이름과 일치해야 합니다. 컨테이너 내에서 해당 리소스를 사용할 수 있도록 합니다.

true

요청

string

요청 은 참조된 클레임에서 요청에 대해 선택한 이름입니다. 비어 있는 경우 클레임의 모든 항목을 사용할 수 있으며, 그렇지 않으면 이 요청의 결과만 제공됩니다.

false

6.65. MonitoringStack.spec.tolerations[index]

이 허용 오차는 일치하는 연산자 <operator>를 사용하여 트리플 < key,value,effect >와 일치하는 테인트를 허용하도록 연결됩니다.

Expand
이름유형설명필수 항목

effect

string

effect는 일치시킬 테인트 효과를 나타냅니다. 비어있는 것은 모든 테인트 효과와 일치함을 의미합니다. 지정된 경우 허용되는 값은 NoSchedule,PreferNoScheduleNoExecute 입니다.

false

key

string

키는 허용 오차가 적용되는 taint 키입니다. 비어있는 것은 모든 taint 키와 일치함을 의미합니다. 키가 비어 있으면 연산자가 Exists 여야 합니다. 이 조합은 모든 값과 모든 키와 일치하는 것을 의미합니다.

false

operator

string

Operator 는 값에 대한 키의 관계를 나타냅니다. 유효한 연산자는 ExistsEqual 입니다. 기본값은 Equal 입니다. exists 는 값에 대한 와일드카드와 동일하므로 Pod에서 특정 카테고리의 모든 테인트를 허용할 수 있습니다.

false

tolerationSeconds

integer

tolerationSeconds 는 허용 오차 ( NoExecute 여야 함)의 기간을 나타냅니다. 그렇지 않으면 이 필드는 해당 테인트를 허용합니다. 기본적으로 설정되어 있지 않습니다. 즉, 테인트를 영구적으로 허용합니다(제거되지 않음). 0 및 음수 값은 시스템에서 0( 즉시 제거)으로 처리됩니다.

형식: int64

false

value

string

값은 허용 오차와 일치하는 taint 값입니다. 연산자가 Exists 인 경우 값은 비어 있어야 합니다. 그렇지 않으면 일반 문자열만 사용해야 합니다.

false

6.66. MonitoringStack.status

MonitoringStackStatusMonitoringStack 인스턴스의 상태를 정의합니다. 클러스터 및/또는 외부의 상태에서 항상 재구성할 수 있어야 합니다.

Expand
이름유형설명필수 항목

conditions

[] 오브젝트

조건은 MonitoringStack 인스턴스에 대한 상태 정보를 제공합니다.

true

6.67. MonitoringStack.status.conditions[index]

Expand
이름유형설명필수 항목

lastTransitionTime

string

lastTransitionTime 은 마지막으로 한 상태에서 다른 상태로 전환된 시간입니다. 기본 조건이 변경된 경우여야 합니다. 이를 알 수 없는 경우 API 필드가 변경된 시간을 사용합니다.

형식: 날짜-시간

true

message

string

message 는 변환에 대한 세부 정보를 나타내는 사람이 읽을 수 있는 메시지입니다. 빈 문자열일 수 있습니다.

true

reason

string

이유에 는 조건의 마지막 전환 이유를 나타내는 프로그래밍 식별자가 포함되어 있습니다. 특정 조건 유형의 생산자는 이 필드에 예상되는 값과 의미를 정의할 수 있으며 값이 보장된 API로 간주되는지 여부를 정의할 수 있습니다. 값은 CamelCase 문자열이어야 합니다. 이 필드는 비어 있지 않을 수 있습니다.

true

status

enum

조건의 상태

enum:True,False,알 수 없음,Degraded

true

type

string

CamelCase 또는 foo.example.com/CamelCase 의 조건 유형입니다. 정규 표현식이 일치하는 정규 표현식은 (dns1123SubdomainFmt/)?(qualifiedNameFmt)입니다.

true

observedGeneration

integer

observedGeneration 은 조건에 따라 설정된 .metadata.generation 을 나타냅니다. 예를 들어 .metadata.generation 이 현재 12이지만 .status.conditions[x].observedGeneration 이 9인 경우 현재 인스턴스 상태와 관련된 조건이 최신 상태가 아닙니다.

형식: int64

최소: 0

false

6.68. ThanosQuerier

ThanosQuerier는 이 스택에서 관리하는 Thanos 큐리어 구성 요소를 간략하게 설명합니다.

Expand
이름유형설명필수 항목

apiVersion

string

monitoring.rhobs/v1alpha1

true

kind

string

ThanosQuerier

true

metadata

object

metadata 필드의 필드는 Kubernetes API 설명서를 참조하십시오.

true

spec

object

ThanosQuerierSpec 은 단일 Thanos Querier 인스턴스를 정의합니다. 즉, MonitoringStack 인스턴스를 쿼리할 레이블 선택기와 선택적 네임스페이스 선택기와 복제 라벨 목록을 중복으로 표시합니다.

false

status

object

ThanosQuerierStatus 는 ThanosQuerier의 관찰 상태를 정의합니다. 클러스터 및/또는 외부의 상태에서 항상 재구성할 수 있어야 합니다.

false

6.69. ThanosQuerier.spec

ThanosQuerierSpec 은 단일 Thanos Querier 인스턴스를 정의합니다. 즉, MonitoringStack 인스턴스를 쿼리할 레이블 선택기와 선택적 네임스페이스 선택기와 복제 라벨 목록을 중복으로 표시합니다.

Expand
이름유형설명필수 항목

선택기

object

통합할 모니터링 스택을 선택하는 선택기입니다.

true

namespaceSelector

object

MonitoringStack 오브젝트가 검색되는 네임스페이스를 선택하는 선택기입니다.

false

replicaLabels

[]string

 

false

webTLSConfig

object

Thanos 웹 서버에 대한 TLS 옵션을 구성합니다.

false

6.70. ThanosQuerier.spec.selector

통합할 모니터링 스택을 선택하는 선택기입니다.

Expand
이름유형설명필수 항목

matchExpressions

[] 오브젝트

matchExpressions 는 라벨 선택기 요구 사항 목록입니다. 요구 사항은 AND로 설정됩니다.

false

matchLabels

map[string]string

matchLabels 는 {key,value} 쌍으로 구성된 맵입니다. matchLabels 맵의 단일 {key,value}는 키 필드가 "key"이고 연산자는 "In"이고, values 배열에는 "value"만 포함된 matchExpressions 의 요소와 동일합니다. 요구 사항은 AND로 설정됩니다.

false

6.71. ThanosQuerier.spec.selector.matchExpressions[index]

레이블 선택기 요구 사항은 값, 키 및 키와 관련된 연산자를 포함하는 선택기입니다.

Expand
이름유형설명필수 항목

key

string

key 는 선택기가 적용되는 라벨 키입니다.

true

operator

string

Operator 는 일련의 값과의 키 관계를 나타냅니다. 유효한 연산자는 In,NotIn,ExistsDoesNotExist 입니다.

true

[]string

값은 문자열 값의 배열입니다. 연산자가 In 또는 NotIn 이면 값 배열은 비어 있지 않아야 합니다. 연산자가 Exists 또는 DoesNotExist 인 경우 값 배열은 비어 있어야 합니다. 이 배열은 전략적 병합 패치 중에 교체됩니다.

false

6.72. ThanosQuerier.spec.namespaceSelector

MonitoringStack 오브젝트가 검색되는 네임스페이스를 선택하는 선택기입니다.

Expand
이름유형설명필수 항목

Any

boolean

부울은 모든 네임스페이스를 제한하는 목록과 달리 모든 네임스페이스를 선택하는지 여부를 설명합니다.

false

matchNames

[]string

네임스페이스 이름 목록입니다.

false

6.73. ThanosQuerier.spec.webTLSConfig

Thanos 웹 서버에 대한 TLS 옵션을 구성합니다.

Expand
이름유형설명필수 항목

certificate

object

웹 서버의 TLS 공용 인증서에 대한 참조입니다.

true

certificateAuthority

object

웹 서버의 인증서를 확인하는 데 사용되는 루트 인증 기관에 대한 참조입니다.

true

privateKey

object

웹 서버의 TLS 개인 키에 대한 참조입니다.

true

6.74. ThanosQuerier.spec.webTLSConfig.certificate

웹 서버의 TLS 공용 인증서에 대한 참조입니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

선택할 오브젝트 네임스페이스의 시크릿 이름입니다.

true

6.75. ThanosQuerier.spec.webTLSConfig.certificateAuthority

웹 서버의 인증서를 확인하는 데 사용되는 루트 인증 기관에 대한 참조입니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

선택할 오브젝트 네임스페이스의 시크릿 이름입니다.

true

6.76. ThanosQuerier.spec.webTLSConfig.privateKey

웹 서버의 TLS 개인 키에 대한 참조입니다.

Expand
이름유형설명필수 항목

key

string

선택할 시크릿의 키입니다. 유효한 시크릿 키여야 합니다.

true

name

string

선택할 오브젝트 네임스페이스의 시크릿 이름입니다.

true

Legal Notice

Copyright © 2025 Red Hat

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.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat