11장. 마이그레이션
Red Hat OpenShift distributed tracing platform (Jaeger) 3.5는 Red Hat에서 지원할 Red Hat OpenShift distributed tracing Platform (Jaeger)의 마지막 릴리스입니다.
Red Hat OpenShift distributed tracing 플랫폼 3.5에서 Jaeger 및 Elasticsearch에 대한 지원은 더 이상 사용되지 않습니다.
Red Hat OpenShift distributed tracing platform(Jaeger)에 대한 지원은 2025년 11월 3일에 종료됩니다.
Red Hat OpenShift distributed tracing platform Operator (Jaeger)는 2025년 11월 3일 redhat-operators
카탈로그에서 제거됩니다. 자세한 내용은 OpenShift에서 Red Hat 지식베이스 솔루션 Jaeger 사용 중단 및 제거를 참조하십시오.
분산 추적 수집 및 스토리지를 위해 OpenTelemetry Operator의 Red Hat 빌드 및 Tempo Operator로 마이그레이션해야 합니다. 자세한 내용은 Red Hat build of OpenTelemetry 설명서의 "Migrating", Red Hat build of OpenTelemetry 설명서의 "설치", 분산 추적 플랫폼(Tempo) 설명서의 "설치"를 참조하십시오.
애플리케이션에 Red Hat OpenShift distributed tracing Platform(Jaeger)을 이미 사용하고 있는 경우 OpenTelemetry 오픈 소스 프로젝트를 기반으로 하는 OpenTelemetry의 Red Hat 빌드로 마이그레이션할 수 있습니다.
Red Hat build of OpenTelemetry는 분산 시스템에서 관찰 기능을 용이하게 하는 API, 라이브러리, 에이전트 및 계측을 제공합니다. OpenTelemetry의 Red Hat 빌드의 OpenTelemetry 수집기는 Jaeger 프로토콜을 수집할 수 있으므로 애플리케이션의 SDK를 변경할 필요가 없습니다.
분산 추적 플랫폼(Jaeger)에서 OpenTelemetry 수집기로 Red Hat 빌드로 마이그레이션하려면 OpenTelemetry 수집기 및 애플리케이션이 추적을 원활하게 보고하도록 구성해야 합니다. 사이드카 및 사이드카 없는 배포를 마이그레이션할 수 있습니다.
11.1. 사이드카로 마이그레이션
Red Hat build of OpenTelemetry Operator는 배포 워크로드에 사이드카 삽입을 지원하므로 분산 추적 플랫폼(Jaeger) 사이드카에서 Red Hat 빌드의 OpenTelemetry 사이드카로 마이그레이션할 수 있습니다.
사전 요구 사항
- Red Hat OpenShift 분산 추적 플랫폼(Jaeger)은 클러스터에서 사용됩니다.
- Red Hat build of OpenTelemetry가 설치되어 있습니다.
프로세스
OpenTelemetry 수집기를 사이드카로 구성합니다.
apiVersion: opentelemetry.io/v1beta1 kind: OpenTelemetryCollector metadata: name: otel namespace: <otel-collector-namespace> spec: mode: sidecar config: receivers: jaeger: protocols: grpc: {} thrift_binary: {} thrift_compact: {} thrift_http: {} processors: batch: {} memory_limiter: check_interval: 1s limit_percentage: 50 spike_limit_percentage: 30 resourcedetection: detectors: [openshift] timeout: 2s exporters: otlp: endpoint: "tempo-<example>-gateway:8090" 1 tls: insecure: true service: pipelines: traces: receivers: [jaeger] processors: [memory_limiter, resourcedetection, batch] exporters: [otlp]
- 1
- 이 끝점은 Tempo Operator를 사용하여 배포된 TempoStack 인스턴스의 게이트웨이를
<example>
가리킵니다.
애플리케이션 실행을 위한 서비스 계정을 생성합니다.
apiVersion: v1 kind: ServiceAccount metadata: name: otel-collector-sidecar
일부 프로세서에 필요한 권한에 대한 클러스터 역할을 생성합니다.
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: otel-collector-sidecar rules: 1 - apiGroups: ["config.openshift.io"] resources: ["infrastructures", "infrastructures/status"] verbs: ["get", "watch", "list"]
- 1
resourcedetectionprocessor
에는 인프라 및 인프라/상태에 대한 권한이 필요합니다.
ClusterRoleBinding
을 생성하여 서비스 계정에 대한 권한을 설정합니다.apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: otel-collector-sidecar subjects: - kind: ServiceAccount name: otel-collector-deployment namespace: otel-collector-example roleRef: kind: ClusterRole name: otel-collector apiGroup: rbac.authorization.k8s.io
- OpenTelemetry Collector를 사이드카로 배포합니다.
-
Deployment
오브젝트에서"sidecar.jaegertracing.io/inject": "true"
주석을 제거하여 애플리케이션에서 삽입된 Jaeger 에이전트를 제거합니다. -
Deployment
오브젝트의.spec.template.metadata.annotations
필드에sidecar.opentelemetry.io/inject: "true"
주석을 추가하여 OpenTelemetry 사이드카 자동 삽입을 활성화합니다. - 생성된 서비스 계정을 사용하여 애플리케이션이 배포되면 프로세서가 올바른 정보를 가져와서 추적에 추가할 수 있습니다.