[K8s] 눈을 가리고 운전할 수는 없다: K8s 옵저버빌리티(Observability)와 AIOps의 도래

2026. 7. 22. 22:33·▣ Infra & DevOps/Kubernetes🚢
728x90
반응형

단일 서버(Monolithic) 환경에서는 서버에 직접 접속해 로그 파일을 열어보면 그만이었지만, 언제든 죽고 재생성되는 K8s 환경에서는 불가능한 방식입니다. 이번 글에서는 클라우드 네이티브 환경의 필수 요소인 옵저버빌리티(Observability)와, 이를 고도화하는 AIOps 트렌드에 대해 다룹니다.


1. 모니터링(Monitoring)을 넘어 옵저버빌리티(Observability)로

단순한 '모니터링'과 '옵저버빌리티(관측성)'는 미묘하지만 큰 차이가 있습니다.

  • 모니터링: 시스템이 "언제(When)" 망가졌는지, 즉 CPU 사용률이 90%를 넘었는지 등 미리 정의된 임계치를 감시합니다.
  • 옵저버빌리티: 시스템이 "왜(Why)" 망가졌는지, 즉 분산된 마이크로서비스 환경에서 외부 요청이 내부의 어떤 서비스들을 거쳐갔고 어느 지점에서 지연이 발생했는지 내부 상태를 추론할 수 있게 해줍니다.

 

옵저버빌리티를 달성하기 위해서는 흔히 '3대 기둥(Three Pillars)'이라 불리는 데이터를 중앙 집중화해야 합니다.

  • 메트릭(Metrics): CPU, 메모리, HTTP 요청 횟수 등 정량적인 수치 데이터
  • 로그(Logs): 애플리케이션이 뿜어내는 텍스트 형태의 이벤트 기록
  • 트레이스(Traces): 하나의 요청(Request)이 여러 마이크로서비스를 거쳐가는 전체 경로와 구간별 소요 시간 (분산 트레이싱)

옵저버빌리티 3대 기둥: Metrics, Logs, Traces


2. K8s 생태계를 장악한 관제탑: LGTM 스택

이 3가지 데이터를 효율적으로 수집하고 저장하기 위해, 최근 클라우드 네이티브 생태계에서는 사실상의 표준(De facto standard)으로 LGTM 스택이 강력하게 자리 잡았습니다.

구성 요소 역할 설명
Loki Logs K8s 환경에 최적화된 로그 집계 시스템. ELK(Elasticsearch)와 달리 메타데이터(Label)만 인덱싱하여 매우 가볍고 비용 효율적
Grafana Visualization 수집된 모든 데이터를 하나의 화면에서 시각화해 주는 강력한 대시보드
Tempo Traces 대규모 분산 트레이싱 백엔드. 서비스 간 호출 지연을 폭포수(Waterfall) 차트로 시각화
Mimir Metrics Prometheus의 한계(장기 보관 및 스케일링)를 극복한 대용량 시계열 데이터베이스

3. 파편화된 데이터 수집의 통일: OpenTelemetry (OTel)

LGTM 백엔드가 훌륭해도, Spring Boot 앱에서 메트릭, 로그, 트레이스를 각각 다른 에이전트(Agent)를 통해 수집한다면 운영 오버헤드가 극심해집니다. 이를 해결하기 위해 등장한 CNCF의 핵심 프로젝트가 바로 OpenTelemetry(OTel)입니다.

[Spring Boot (Pod)] ──(OTel SDK)──▶ [OTel Collector]
                                          │
                                          ├──▶ 메트릭  ──▶ [Mimir]
                                          ├──▶ 로  그  ──▶ [Loki]
                                          └──▶ 트레이스 ──▶ [Tempo]

 

OTel은 특정 벤더에 종속되지 않는 표준화된 데이터 수집 파이프라인을 제공합니다. 개발자는 애플리케이션 코드에 OTel 라이브러리만 연동해 두면, 인프라 담당자는 OTel Collector를 통해 데이터를 가공하고 원하는 백엔드(LGTM, Datadog 등)로 언제든 유연하게 보낼 수 있습니다.

LGTM 스택 + OpenTelemetry 아키텍처


4. 옵저버빌리티의 종착지: AIOps와 자동화된 대응

데이터를 잘 모았다고 끝이 아닙니다. K8s 클러스터 규모가 커지면 수집되는 데이터량은 인간이 눈으로 분석할 수 없는 수준(Alert Fatigue, 알람 피로)에 이릅니다.

여기서 최근 주목받는 AIOps (Artificial Intelligence for IT Operations) 개념이 등장합니다.

  • 이상 탐지 (Anomaly Detection): "CPU 80% 이상일 때 알람" 같은 고정된 규칙이 아니라, 머신러닝 모델이 평소 서비스의 트래픽 패턴을 학습하여 "수요일 오후 2시 치고는 결제 실패율이 비정상적으로 높다"는 것을 스스로 감지합니다.
  • 근본 원인 분석 (Root Cause Analysis, RCA): 장애가 발생하면 AI가 OTel을 통해 수집된 트레이스와 로그를 결합 분석하여 "DB 쿼리 락(Lock)이 원인이다"라고 짚어줍니다.
  • 자동화된 롤아웃 조치 (Zero-Touch Rollout Fixes): GitOps 플랫폼과 연동하여, 새 버전 배포 후 에러율이 상승하는 것이 감지되면 AI가 개입해 즉시 이전 안전한 버전으로 자동 롤백을 수행합니다.
728x90
반응형
'▣ Infra & DevOps/Kubernetes🚢' 카테고리의 다른 글
  • [K8s] 트래픽 폭주에 대비하는 K8s 자동 확장 전략: HPA와 KEDA
  • [K8s] 상태가 있는(Stateful) 데이터를 위한 스토리지 전략: PV, PVC와 StatefulSet
  • [K8s] 인프라 배포의 패러다임 시프트: GitOps와 OCI 레지스트리의 이해
  • [K8s] 외부 트래픽 라우팅의 진화: Ingress에서 Gateway API까지
예르미(yermi)
예르미(yermi)
끊임없이 제 자신을 계발하는 개발자입니다👨🏻‍💻
  • 예르미(yermi)
    예르미의 코딩노트
    예르미(yermi)
  • 전체
    오늘
    어제
    • 분류 전체보기 (1025) N
      • ◎ Java (133)
        • Java☕ (93)
        • JSP📋 (26)
        • Applet🧳 (6)
        • Interview👨🏻‍🏫 (8)
      • ◎ JavaScript (48)
        • JavaScript🦎 (25)
        • jQuery🌊 (8)
        • React🌐 (2)
        • Vue.js🔰 (6)
        • Node.js🫒 (3)
        • Google App Script🐑 (4)
      • ◎ HTML5+CSS3 (17)
        • HTML5📝 (8)
        • CSS3🎨 (9)
      • ──────────── (0)
      • ▣ Framework (67)
        • Spring🍃 (36)
        • Spring Boot🍀 (12)
        • Bootstrap💜 (3)
        • Selenium🌕 (6)
        • MyBatis🐣 (10)
      • ▣ Tools (47)
        • API🎯 (18)
        • Library🎲 (15)
        • JitPack🚀 (3)
        • Jenkins👨🏻 (7)
        • Thymeleaf🌿 (4)
      • ▣ Server (30)
        • Apache Tomcat🐱 (14)
        • Apache HTTP Server🛡️ (1)
        • Nginx🧶 (7)
        • OracleXE💿 (4)
        • VisualSVN📡 (4)
      • ▣ Infra & DevOps (20) N
        • LGTM Stack🔭 (5)
        • Kafka🐦‍🔥 (0)
        • Kubernetes🚢 (9) N
        • KubeCon Japan 2026⚓ (6)
      • ▣ OS : 운영체제 (18)
        • cmd : 명령프롬프트💻 (10)
        • Linux🐧 (8)
      • ▣ SQL : Database (56)
        • Oracle SQL🏮 (26)
        • PL SQL💾 (9)
        • MySQL🐬 (6)
        • MariaDB🦦 (6)
        • H2 Database🔠 (3)
        • SQL 실전문제🐌 (6)
      • ────────── (0)
      • ◈ Human Project (86)
        • Mini : Library Service📚 (15)
        • 화면 설계 [HTML]🐯 (10)
        • 서버 프로그램 구현🦁 (15)
        • Team : 여수어때🛫 (19)
        • Custom : Student🏫 (9)
        • Custom : Board📖 (18)
      • ◈ Yermi Project (49)
        • 조사모아(Josa-moa)📬 (5)
        • Riddle-Game🧩 (6)
        • 맛있을 지도🍚 (2)
        • 어디 가! 박대리!🙋🏻‍♂️ (5)
        • 조크베어🐻‍❄️ (4)
        • Looks Like Thirty🦉 (2)
        • Toy Project💎 (12)
        • 오픈소스 파헤치기🪐 (5)
        • 오늘가챠🃏 (8)
      • ◈ Refactoring (15)
        • Mini : Library Service📚 (8)
        • 서버 프로그램 구현🦁 (1)
        • Team : 여수어때🛫 (0)
        • 쿼리 튜닝일지🔧 (6)
      • ◈ Coding Test (80)
        • 백준(BOJ)👨🏻‍💻 (71)
        • 프로그래머스😎 (2)
        • 코드트리🌳 (7)
      • ◈ Study (129)
        • 기초튼튼 개발지식🥔 (25)
        • HTTP 웹 지식💡 (4)
        • 클린코드(Clean Code)🩺 (1)
        • 디자인패턴(GoF)🥞 (12)
        • 알고리즘(Algorithm)🎡 (14)
        • 다이어그램(Diagram)📈 (4)
        • 파이썬(Python)🐍 (16)
        • 에러노트(Error Note)🧱 (34)
        • 웹 보안(Web Security)🔐 (11)
        • 인공지능 AI🛸 (8)
      • ◈ 공부모임 (57)
        • 혼공학습단⏰ (18)
        • 코드트리 챌린지👊🏻 (2)
        • 개발도서 100독👟 (8)
        • 나는 리뷰어다🌾 (17)
        • 국가기술자격 서포터즈🌻 (12)
      • ◈ 자격증 공부 (48)
        • 정보처리기사🔱 (16)
        • 정보처리산업기사🔅 (9)
        • 정보보안기사⚜️ (11)
        • 컴퓨터활용능력 1급📼 (12)
      • ─────────── (0)
      • ◐ 기타 (124)
        • 알아두면 좋은 팁(tip)✨ (46)
        • 개발자의 일상🎈 (55)
        • 개발도서 서평🔍 (10)
        • 개발관련 세미나🎤 (2)
        • 블로그 꾸미기🎀 (9)
        • 사도신경 프로젝트🎚️ (2)
  • 인기 글

  • 최근 댓글

  • 반응형
    250x250
  • 태그

    Java
    spring
    Error Note
    코딩 테스트
    Oracle
    자바스크립트
    백준 티어
    Project
    코딩
    spring boot
    백준
    일상
    Database
    프로그래밍
    꿀팁
    jsp
    CSS
    BOJ
    javascript
    SQL
  • hELLO· Designed By정상우.v4.10.3
예르미(yermi)
[K8s] 눈을 가리고 운전할 수는 없다: K8s 옵저버빌리티(Observability)와 AIOps의 도래
상단으로

티스토리툴바