OpenTelemtry Operator

개요

오픈텔레메트리쿠버네티스 환경에서 쉽게 구동하기 위한 오퍼레이터.
구체적으로는 오텔 컬렉터, 오토 인스트루멘탈을 관리해준다.

현재는 4가지 리소스가 있는데, 가장 기본적인 것은 컬렉터와 인스트루멘트 리소스이다.

커스텀 리소스 양식 작성법

https://github.com/open-telemetry/opentelemetry-operator/tree/main/docs/api

Instrumentation

apiVersion: opentelemetry.io/v1alpha1
kind: Instrumentation
metadata:
  name: demo-instrumentation
spec:
  exporter:
    endpoint: http://demo-collector:4318
  propagators:
    - tracecontext
    - baggage
  sampler:
    type: parentbased_traceidratio
    argument: "1"

제로 코드 인스트루멘트 주입 설정을 하는 리소스이다.
이걸 설정하면 실제로는 초기화 컨테이너를 통해 앱 컨테이너에 대한 추가적인 환경 구성을 하게 된다.
exporter 필드에는 데이터를 보낼 대상을 지정하면 되는데, 현재는 gRPC 포트를 써주면 된다고 한다.
propagators에는 어떤 방식으로 컨텍스트를 설정할 건지 지정한다.
아래의 목록이 가능하다.

OpentelmetryCollector

설치

일단 서트 매니저를 같이 설치해야 하는데, 어드미션 웹훅에서 api 서버와 통신에 사용할 인증서를 세팅하기 위함이다.

kubectl apply -f https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml

그냥 이렇게 양식만 받아 설치 가능!

helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
helm repo update
helm install opentelemetry-operator open-telemetry/opentelemetry-operator \
--set "manager.collectorImage.repository=otel/opentelemetry-collector-k8s"

헬름 방식도 당연히 지원하며, 여기에서 설정을 손봐주면 굳이 서트 매니저가 필수는 아니다.[1]
근데 오퍼레이터란 놈들은 왜 죄다 그냥 양식으로 받는 방식을 먼저 알려줄까
이 다음에 각 리소스를 만드는 건 관리자의 몫이다.

helm install \
  opentelemetry-kube-stack open-telemetry/opentelemetry-kube-stack

기본적인 배포가 되는 상태로 설치하고 싶다면 kube stack 쪽을 설치하면 된다.[2]

관련 문서

이름 noteType created
OpenTelemetry knowledge 2025-02-28
Jaeger knowledge 2025-04-29
4주차 - opentelemetry 데모 project 2025-03-01
4W - 오픈텔레메트리 기반 트레이싱 예거 시각화, 키알리 시각화 published 2025-05-03

참고


  1. https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-operator ↩︎

  2. https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-kube-stack ↩︎