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
에는 어떤 방식으로 컨텍스트를 설정할 건지 지정한다.
아래의 목록이 가능하다.
- tracecontext
- baggage
- b3
- b3multi
- jaeger
- xray
- ottrace
- none
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 |