5장. 분산 추적 데이터 수집(OpenTelemetry)

5.1. 분산 추적 데이터 수집 설치

중요

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

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

분산 추적 데이터 수집을 설치하려면 다음 단계를 수행해야 합니다.

  1. Red Hat OpenShift distributed tracing data collection Operator 설치
  2. OpenTelemetry 수집기 인스턴스에 대한 네임스페이스 생성.
  3. OpenTelemetryCollector 사용자 지정 리소스를 생성하여 OpenTelemetry 수집기 인스턴스를 배포합니다.

5.1.1. 웹 콘솔에서 분산 추적 데이터 수집 설치

웹 콘솔의 관리자 보기에서 분산 추적 데이터 수집을 설치할 수 있습니다.

전제 조건

  • cluster-admin 역할의 클러스터 관리자로 웹 콘솔에 로그인되어 있습니다.
  • Red Hat OpenShift Dedicated의 경우 dedicated-admin 역할의 계정을 사용하여 로그인해야 합니다.
  • cluster-admin 역할의 클러스터 관리자가 활성 OpenShift CLI(oc) 세션입니다.

    작은 정보
    • OpenShift CLI(oc) 버전이 최신 버전인지 확인하고 OpenShift Container Platform 버전과 일치하는지 확인합니다.
    • oc login 을 실행합니다.

      $ oc login --username=<your_username>

프로세스

  1. Red Hat OpenShift distributed tracing data collection Operator를 설치합니다.

    1. OperatorsOperatorHub 로 이동하여 Red Hat OpenShift distributed tracing data collection Operator 를 검색합니다.
    2. Red Hat → InstallInstallView Operator 에서 제공하는 Red Hat OpenShift distributed tracing data collection Operator 를 선택합니다.

      중요

      이렇게 하면 기본 사전 설정을 사용하여 Operator가 설치됩니다.

      • 채널 → stable업데이트
      • 설치 모드클러스터의 모든 네임스페이스
      • 설치된 네임스페이스openshift-operators
      • 승인 → 자동업데이트
    3. 설치된 Operator 페이지의 세부 정보 탭에서 ClusterServiceVersion 세부 정보 에서 설치 상태가 성공했는지 확인합니다.
  2. → 프로젝트 → 프로젝트 생성으로 이동하여 다음 단계에서 생성할 OpenTelemetry 수집기 인스턴스에 대해 선택한 프로젝트를 생성합니다.
  3. OpenTelemetry 수집기 인스턴스를 생성합니다.

    1. Operator → 설치된 Operator 로 이동합니다.
    2. OpenTelemetry CollectorOpenTelemetryCollectorYAML 보기를 선택합니다.
    3. YAML 보기에서 OTLP, Jaeger, Zipkin receiver 및 로깅 내보내기를 사용하여 OpenTelemetryCollector CR(사용자 정의 리소스)을 사용자 지정합니다.

      apiVersion: opentelemetry.io/v1alpha1
      kind: OpenTelemetryCollector
      metadata:
        name: otel
        namespace: <project_of_opentelemetry_collector_instance>
      spec:
        mode: deployment
        config: |
          receivers:
            otlp:
              protocols:
                grpc:
                http:
            jaeger:
              protocols:
                grpc:
                thrift_binary:
                thrift_compact:
                thrift_http:
            zipkin:
          processors:
            batch:
            memory_limiter:
              check_interval: 1s
              limit_percentage: 50
              spike_limit_percentage: 30
          exporters:
            logging:
          service:
            pipelines:
              traces:
                receivers: [otlp,jaeger,zipkin]
                processors: [memory_limiter,batch]
                exporters: [logging]
    4. 생성을 선택합니다.

검증

  1. 다음 명령을 실행하여 OpenTelemetry 수집기 Pod의 status.phaseRunning 이고 조건이 type: Ready 인지 확인합니다.

    $ oc get pod -l app.kubernetes.io/managed-by=opentelemetry-operator,app.kubernetes.io/instance=<namespace>.<instance_name> -o yaml
  2. 다음 명령을 실행하여 OpenTelemetry 수집기 서비스를 가져옵니다.

    $ oc get service -l app.kubernetes.io/managed-by=opentelemetry-operator,app.kubernetes.io/instance=<namespace>.<instance_name>

5.1.2. 추가 리소스