본문으로 건너뛰기

1.1. 개요 — OPENMARU APM Operator 란

개요

OPENMARU APM Operator 는 Kubernetes / OpenShift 클러스터에서 APM 에이전트 적용과 부하 기반 확장을 자동화합니다. 본 장은 Operator 가 해결하는 문제, 두 구성요소의 역할, 전체 동작 흐름을 설명합니다.

<OMAPMBrandText/> Operator 구조

1. 왜 필요한가

기존에 애플리케이션을 OPENMARU APM 으로 모니터링하려면 다음을 손으로 해야 했습니다.

  • 컨테이너 이미지를 다시 빌드 해서 에이전트(jar)를 포함
  • 각 워크로드에 -javaagent JVM 옵션과 APM 접속 정보(OMAPM_*)를 일일이 설정
  • 에이전트 버전이 바뀌면 이미지를 전부 다시 빌드/배포

파드가 수십~수백 개로 늘어나면 이 작업은 번거롭고, 빠뜨리거나 잘못 설정하는 실수가 잦습니다. 또한 트래픽이 몰릴 때 CPU/메모리만으로는 실제 부하(요청량)를 제때 반영하지 못해 늦게 확장되거나 과도하게 확장되는 문제가 있습니다.

OPENMARU APM Operator 는 이 두 가지(계측 적용, 부하 기반 확장)를 Kubernetes / OpenShift 차원에서 자동화합니다.

2. 무엇이 좋아지나

구분Operator 도입 전Operator 도입 후
에이전트 적용이미지 재빌드 + JVM 옵션 수동 설정라벨 한 줄 추가로 자동 주입 (이미지 불변)
신규/증설 파드새로 뜨는 파드마다 수동 반복라벨만 있으면 자동 적용 (운영 부담 감소)
에이전트 버전 변경이미지 재빌드/재배포라벨의 버전 값만 변경
설정 실수빠뜨림·오타 잦음표준화된 자동 주입으로 실수 감소
자동 확장 기준CPU/메모리뿐TPS(실제 요청량) 기반 확장 가능 — 트래픽에 더 정확히 반응
원본 애플리케이션코드/이미지 영향무수정 (Init 컨테이너로 분리 주입)

핵심 이점을 한 줄로 정리하면 다음과 같습니다.

  • 운영 단순화 — 라벨 하나로 계측이 끝나고, 이미지를 건드리지 않습니다.
  • 정확한 오토스케일링 — 사용자가 체감하는 부하(TPS)로 파드를 늘리고 줄여 응답 지연·과확장을 줄입니다.
  • 일관성 — 접속 정보·JVM 옵션이 표준 방식으로 주입되어 환경마다 제각각이던 설정이 통일됩니다.

3. 두 개의 구성요소

Operator 는 두 개의 파드(컴포넌트)로 동작합니다.

3.1 APM Agent — 자동 계측 (Auto-Instrumentation)

Kubernetes 의 Mutating Admission Webhook 입니다. 파드가 생성되는 순간을 가로채서, 대상 워크로드에 라벨 openmaru.io/was-agent: 'true' 가 있으면 다음을 자동으로 끼워 넣습니다.

  • 공유 볼륨(khan-data, emptyDir)
  • Init 컨테이너(khan-agent-init) — 에이전트 파일을 공유 볼륨에 풀어 놓음
  • 애플리케이션 컨테이너에 -javaagent 와 APM 접속 환경변수(OMAPM_*) 주입

결과적으로 원본 이미지를 수정하지 않고 에이전트가 적용됩니다. 자세한 사용법은 301 자동 계측 을 참고하십시오.

3.2 APM HPA — 사용자 정의 오토스케일러

Kubernetes 의 External Metrics API(external.metrics.k8s.io/v1beta1)를 구현한 어댑터입니다. HPA(HorizontalPodAutoscaler)가 요청하는 외부 지표를 OPENMARU APM 서버에 질의해 돌려줍니다.

  • 현재 제공 지표: tps (애플리케이션 그룹의 초당 처리 건수)
  • HPA 는 이 값을 보고 파드 수를 자동 조절

자세한 사용법은 302 오토스케일링 을 참고하십시오.

4. 동작 흐름

4.1 자동 계측

자동 계측 흐름

4.2 오토스케일링

오토스케일링 흐름

5. 적용 대상 및 전제

  • Kubernetes 또는 OpenShift(OCP) 클러스터
  • OPENMARU APM 서버가 동작 중이고, Operator 파드에서 네트워크로 접근 가능
  • 계측 대상은 Java(WAS) 워크로드

OPENMARU COP 환경에서는 Operator 가 자동 구성됩니다. COP(클라우드 운영 플랫폼, Kubernetes/OpenShift 기반)에서는 본 Operator 가 기본 포함되어 별도 설치 없이 자동으로 배포·구성됩니다. 따라서 COP 사용자는 301 자동 계측 부터 바로 시작하면 됩니다. 직접 구축한 클러스터의 설치는 201 설치 를 참고하십시오.

6. 용어

용어설명
Auto-Instrumentation코드/이미지 수정 없이 에이전트를 자동으로 붙이는 것
Webhook (Mutating)파드 생성 요청을 가로채 스펙을 변형하는 Kubernetes 기능
khan-agentOPENMARU WAS 에이전트(jar). -javaagent 로 로딩
애플리케이션 그룹(groupName)OPENMARU APM 에서 인스턴스를 묶은 단위. HPA 지표 조회 키
apmAlias여러 APM 서버를 구분하는 별칭. HPA 가 어느 서버에 물어볼지 결정