title: "OpenTelemetry 설치 준비: OTel k8s Operator 설치"
description: "OTel Collector를 설치 방법은 세 가지로, [OTel Collector Kubernetes resource 직접 생성](<https://opentelemetry.io/docs/collector/installation/>), [Helm Chart 이용](<https://opentelemetry.io/docs/kubernetes/helm/>), 마지막으로 Kubernetes Operator 이용 방법이 있으나, **Kubernetes Operator를 이용해야 OTel Collector뿐 아니라 Target Allocator, Auto-Instrumentation도 설치가 가능**하다. "
cleanUrl: /sw-engineer/install-opentelemetry-operator
ogImage: "<https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F7570d2fc-66b1-4e23-bb3c-ff7b56842b0d%2Ff25324e7-31a6-413c-b3ce-30359ba909f8%2Fotel-operator.png?table=block&id=71ceda27-eb55-434d-be39-e858d1ea140d&spaceId=7570d2fc-66b1-4e23-bb3c-ff7b56842b0d&width=2000&userId=9e492362-d80f-49a5-a66b-58c2d0ca9f7e&cache=v2>"
floatFirstTOC: right

OpenTelemetry Operator를 통한 Collector, Target Allocator, Auto-Instrumentation 설치

OpenTelemetry Operator를 통한 Collector, Target Allocator, Auto-Instrumentation 설치

Introduction

OpenTelemetry의 사용자 관점 Overview 에서 이어지는 글로, OpenTelemetry 설치를 위한 준비 단계이다.

Overview

OTel Collector를 설치 방법은 세 가지로, OTel Collector Kubernetes resource 직접 생성, Helm Chart 이용, 마지막으로 Kubernetes Operator 이용 방법이 있으나, Kubernetes Operator를 이용해야 OTel Collector뿐 아니라 Target Allocator, Auto-Instrumentation도 설치가 가능하다.

앞선 그림은 Otel Kubernetes Operator가 이들 및 OTel CR(Custom Resource)과 어떻게 상호작용하는지를 보여준다(전형적인 Kubernetes CR의 동작 구조 그대를 따른다). 이 Operator 설치 이후의 구체적 Collector, Auto-instrumentation 등의 설치에 대해서는 아래에 이어진다(지속 업데이트 예정).

설치 방법

순서는 다음과 같다.

  1. cert-manager 설치
  2. OTel Kubernetes Operator 설치

cert-manager 설치

설치 방법 출처는 다음과 같다.

Installation

다음 명령으로 cert-manager를 설치한다. 이미 cert-manager가 설치되어 있을 경우에는 skip.

kubectl apply -f <https://github.com/cert-manager/cert-manager/releases/download/v1.14.4/cert-manager.yaml>

이후 다음 단계로 넘어가기 전까지 얼마간’ 시간을 보낸 후에 다음 단계로 넘어간다. pod 생성 직후 바로 설치 시에는 아래와 같은 오류가 발생하기 때문이다(’얼마간’이라 애매한 표현을 썼는데, 아래 오류가 왜 발생하고, 무엇 때문에 시간이 지나면 발생하지 않는지 확인이 안되었기 때문이다).

# cert-manager pod가 ready 상태가 아닌 경우 설치 시 발생하는 오류 예
Error from server (InternalError): error when creating "<https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml>": Internal error occurred: failed calling webhook "webhook.cert-manager.io": failed to call webhook: Post "<https://cert-manager-webhook.cert-manager.svc:443/validate?timeout=30s>": dial tcp 10.100.175.98:443: connect: connection refused

# ready 상태 직후 설치 시 발생하는 오류 예
Error from server (InternalError): error when creating "<https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml>": Internal error occurred: failed calling webhook "webhook.cert-manager.io": failed to call webhook: Post "<https://cert-manager-webhook.cert-manager.svc:443/validate?timeout=30s>": tls: failed to verify certificate: x509: certificate signed by unknown authority