4장. Service Mesh를 사용하여 Red Hat OpenShift distributed tracing 데이터 수집 구성


Red Hat OpenShift Service Mesh를 Red Hat OpenShift distributed tracing 데이터 수집과 통합하여 OpenTelemetry 추적, 메트릭 및 로그를 측정, 생성, 수집 및 내보내 소프트웨어의 성능 및 동작을 분석하고 파악할 수 있습니다.

사전 요구 사항

  • tempo Operator가 설치되어 있습니다. Tempo Operator 설치를 참조하십시오.
  • Red Hat OpenShift distributed tracing data collection Operator가 설치되어 있습니다. 참조: OpenTelemetry Red Hat 빌드 설치
  • TempoStack은 tempo 네임스페이스에 설치 및 구성됩니다. TempoStack 인스턴스 설치를 참조하십시오.
  • Istio 인스턴스가 생성됩니다.
  • Istio CNI 인스턴스가 생성됩니다.

프로세스

  1. Red Hat OpenShift distributed tracing data collection Operator로 이동하여 istio-system 네임스페이스에 OpenTelemetryCollector 리소스를 설치합니다.

    istio-system 네임스페이스의 OpenTelemetry 수집기 예

    kind: OpenTelemetryCollector
    apiVersion: opentelemetry.io/v1beta1
    metadata:
      name: otel
      namespace: istio-system
    spec:
      observability:
        metrics: {}
      deploymentUpdateStrategy: {}
      config:
        exporters:
          otlp:
            endpoint: 'tempo-sample-distributor.tempo.svc.cluster.local:4317'
            tls:
              insecure: true
        receivers:
          otlp:
            protocols:
              grpc:
                endpoint: '0.0.0.0:4317'
              http: {}
        service:
          pipelines:
            traces:
              exporters:
                - otlp
              receivers:
                - otlp

  2. 추적을 활성화하고 meshConfig 에서 분산 추적 데이터 수집 추적 공급자를 정의하도록 Red Hat OpenShift Service Mesh를 구성합니다.

    추적 활성화 및 추적 공급자 정의 예

    apiVersion: sailoperator.io/v1alpha1
    kind: Istio
    metadata:
    #  ...
      name: default
    spec:
      namespace: istio-system
    #  ...
      values:
        meshConfig:
          enableTracing: true
          extensionProviders:
          - name: otel-tracing
            opentelemetry:
              port: 4317
              service: otel-collector.istio-system.svc.cluster.local 1

    1
    service 필드는 istio-system 네임스페이스의 OpenTelemetry 수집기 서비스입니다.
  3. Istio Telemetry 리소스를 생성하여 spec.values.meshConfig.ExtensionProviders 에 정의된 추적기를 활성화합니다.

    Istio Telemetry 리소스의 예

    apiVersion: telemetry.istio.io/v1
    kind: Telemetry
    metadata:
      name: otel-demo
      namespace: istio-system
    spec:
      tracing:
        - providers:
            - name: otel-tracing
          randomSamplingPercentage: 100

    참고

    추적이 표시되는지 확인한 후 randomSamplingPercentage 값을 줄이거나 요청 수를 줄이기 위해 기본값 으로 설정합니다.

  4. bookinfo 네임스페이스에 info 애플리케이션을 배포합니다.

    $ oc create ns info
    $ oc label ns <namespace_name> istio.io/rev= 1
    $ oc apply -f https://raw.githubusercontent.com/istio/istio/release-1.23/samples/info/platform/kube/bookinfo.yaml -n bookinfo
    1
    Istio 리소스 기본값 을 지정하고 InPlace 업그레이드 전략을 사용하는 경우 oc 레이블 ns info istio-injection=enabled 를 사용합니다.
    참고

    < revision-name> 을 찾으려면 다음 명령을 실행합니다.

    $ oc get istiorevisions.sailoperator.io

    샘플 출력:

    NAME              TYPE    READY   STATUS    IN USE   VERSION   AGE
    default-v1-23-0   Local   True    Healthy   False    v1.23.0   3m33s

  5. productpage Pod에 대한 트래픽을 생성하여 추적을 생성합니다.

    $ oc exec -it -n info deployments/productpage-v1 -c istio-proxy -- curl localhost:9080/productpage
  6. 다음 명령을 실행하여 통합을 검증하여 UI의 추적을 확인합니다.

    $ oc get routes -n tempo tempo-sample-query-frontend
    참고

    Jaeger UI의 OpenShift 경로는 Tempo 네임스페이스에 생성해야 합니다. tempo-sample-query-frontend 서비스에 대해 수동으로 생성하거나 Tempo 사용자 정의 리소스를 .spec.template.queryFrontend.jaegerQuery.ingress.type: route 로 업데이트할 수 있습니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.