1.1. 개요 — OPENMARU APM Operator 란
개요
OPENMARU APM Operator 는 Kubernetes / OpenShift 클러스터에서 APM 에이전트 적용과 부하 기반 확장을 자동화합니다. 본 장은 Operator 가 해결하는 문제, 두 구성요소의 역할, 전체 동작 흐름을 설명합니다.
1. 왜 필요한가
기존에 애플리케이션을 OPENMARU APM 으로 모니터링하려면 다음을 손으로 해야 했습니다.
- 컨테이너 이미지를 다시 빌드 해서 에이전트(jar)를 포함
- 각 워크로드에
-javaagentJVM 옵션과 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-agent | OPENMARU WAS 에이전트(jar). -javaagent 로 로딩 |
| 애플리케이션 그룹(groupName) | OPENMARU APM 에서 인스턴스를 묶은 단위. HPA 지표 조회 키 |
| apmAlias | 여러 APM 서버를 구분하는 별칭. HPA 가 어느 서버에 물어볼지 결정 |