Kubernetes OpenTelemetry 를 사용한 모니터링
Kubernetes 환경은 역동적이고 복잡하며, 수많은 마이크로서비스, 포드, 노드 및 기타 리소스가 끊임없이 상호작용하고 있습니다. OpenTelemetry 를 통해 Kubernetes 를 모니터링하면, 컨테이너화된 애플리케이션과 인프라에 대한 심층적인 가시성을 확보할 수 있는 강력하고 벤더 중립적인 접근 방식을 제공합니다.
OpenTelemetry 를 활용한 Kubernetes 모니터링의 핵심 구성 요소
Kubernetes 의 OpenTelemetry 모니터링은 두 가지 주요 유형의 OpenTelemetry 수집기(Collector)와 이 수집기들에 연결된 수신기(Receiver)를 중심으로 이루어집니다.
OpenTelemetry 의 종류 Kubernetes 수집가
- DaemonSet 수집가
- 각 노드에 배포되어 해당 노드에서 실행 중인 노드, 파드 및 컨테이너와 관련된 원격 측정 데이터를 수집합니다.
- DeploymentSet 수집가
- Kubernetes, API 서버 메트릭과 같은 클러스터 수준 메트릭 및 이벤트를 위한 단일 인스턴스.
OpenTelemetry 용 수신기 종류 Kubernetes Collector
- Kubeletstats 수신기
- 각 노드의 Kubelet API 서버에서 노드 정보, 컨테이너 메모리 사용량, 포드 CPU 사용량 및 노드 네트워크 오류에 대한 메트릭을 직접 수집합니다.
- Kubernetes 클러스터 수신기
- Kubernetes API 서버를 사용하여 클러스터 전체에 대한 클러스터 수준 메트릭 및 엔티티 이벤트(예: 포드 상태, 노드 상태)를 수집합니다
OpenTelemetry 용 프로세서 종류 Kubernetes Collector
- Kubernetes 속성 처리기
- Kubernetes 의 파드를 자동으로 탐지하고, 메타데이터(파드 이름, 네임스페이스, 노드 이름, 배포 이름, 파드 UID 등)를 추출한 다음, 이 컨텍스트를 스팬, 메트릭 및 로그에 추가합니다. 이는 애플리케이션 텔레메트리 데이터를 Kubernetes 인프라 데이터와 연계하는 데 매우 중요합니다.
OpenTelemetry Kubernetes 수집기의 배포 모드 유형
- 헬름스 차트
- OpenTelemetry 의 공식 가이드( Helm )는 Kubernetes 에 OpenTelemetry Collector를 배포하는 간단하고 유연한 방법을 제공합니다.
- Kubernetes 오퍼레이터
- OpenTelemetry 오퍼레이터는 Kubernetes API 를 확장하여 OpenTelemetry 구성 요소의 관리를 자동화하는 Kubernetes 오퍼레이터입니다. 배포 과정을 간소화하는 새로운 사용자 정의 리소스 정의(CRD)인 ` OpenTelemetryCollector, `를 도입합니다.
Instana 를 OpenTelemetry 와 원활하게 통합하여 Kubernetes 환경을 효과적으로 모니터링할 수 있습니다. Instana OpenTelemetry ( Kubernetes )에서 데이터를 가져오는 두 가지 서로 다른 방식을 지원합니다.