Kubernetes Logging Architecture 완벽 가이드! Container Log 수집과 중앙 집중 관리 구조 이해하기

Kubernetes 환경에서 Monitoring이 현재 상태를 확인하는 역할이라면 Logging은 문제가 발생한 원인을 분석하는 역할을 담당합니다.

실제 운영 환경에서는 다음과 같은 상황이 자주 발생합니다.

Application 오류 발생

Pod 재시작

서비스 장애 발생

이때 운영자는 다음 질문에 답해야 합니다.

  • 어떤 Container에서 오류가 발생했는가?
  • 언제 문제가 시작되었는가?
  • 어떤 Error Message가 발생했는가?
  • 여러 Pod 중 어떤 Pod가 원인인가?

이러한 문제를 해결하기 위해 Kubernetes에서는 Container Log를 수집하고 중앙에서 관리하는 Logging Architecture가 필요합니다.

구성 요소역할
Container LogApplication 실행 기록
Node LoggingNode 단위 Log 관리
Log AgentLog 수집
Log StorageLog 저장
VisualizationLog 검색 및 분석

Kubernetes Logging Architecture를 이해하면 장애 원인을 빠르게 분석하고 안정적인 Production 환경을 운영할 수 있습니다.

Kubernetes Logging이 필요한 이유

Container 환경에서는 Pod가 계속 생성되고 삭제됩니다.

일반 Server:

하나의 Server

하나의 Log File 관리

Kubernetes:

Node 여러 개

Pod 수십~수백 개

Container 생성·삭제 반복

기존 방식으로는 Log 관리가 어렵습니다.

특히 Kubernetes 환경에서는 다음 문제가 발생합니다.

  • Pod 삭제 후 Log 손실
  • 여러 Node Log 관리 어려움
  • 장애 Container 찾기 어려움
  • 장기간 Log 보관 필요

따라서 중앙 집중 Logging 시스템이 필요합니다.

Kubernetes Container Log 기본 구조

Kubernetes Container Log는 기본적으로 Container Runtime이 관리합니다.

구조:

Application

stdout / stderr 출력

Container Runtime

Node Log 저장

kubectl logs 확인

Application은 별도 Log File을 관리하지 않고 표준 출력 방식으로 Log를 기록하는 것이 일반적입니다.

Kubernetes kubectl logs 동작 방식

가장 기본적인 Log 확인 방법입니다.

Pod 확인:

kubectl get pods

Log 확인:

kubectl logs pod-name

결과:

Application Error

Stack Trace

실패 원인 확인

개발 환경에서는 유용하지만 Production 환경에서는 한계가 있습니다.

kubectl logs 방식의 한계

직접 Log 확인 방식은 규모가 커지면 문제가 발생합니다.

예:

Cluster:

Node 10개

Pod 500개

운영자가 직접 확인

문제:

  • 검색 어려움
  • 보관 어려움
  • 장애 추적 어려움

따라서 중앙 Logging 시스템이 필요합니다.

Kubernetes Logging Architecture 구조

일반적인 Production Logging 구조:

Application Container

stdout / stderr

Node Log

Log Agent

Central Logging System

Dashboard

대표적인 구성:

  • Fluent Bit
  • Fluentd
  • Elasticsearch
  • Loki
  • Grafana

운영 환경에서는 이러한 구조를 사용합니다.

Kubernetes Log Agent 역할

Log Agent는 각 Node에서 발생하는 Container Log를 수집합니다.

구조:

Worker Node

Log Agent

Log Storage

대표적인 방식:

DaemonSet 배포

이유:

모든 Node에서 하나씩 실행되어야 하기 때문입니다.

이전에 배운 DaemonSet 구조와 연결됩니다.

Kubernetes Logging과 DaemonSet 관계

Logging Agent는 대부분 DaemonSet으로 배포됩니다.

구조:

Node 1

Fluent Bit Pod

Node 2

Fluent Bit Pod

Node 3

Fluent Bit Pod

새로운 Node 추가:

Node 생성

DaemonSet 감지

Log Agent 자동 생성

자동으로 Logging 환경이 확장됩니다.

Kubernetes 주요 Logging 방식

Kubernetes Logging은 크게 세 가지 방식으로 나눌 수 있습니다.

Node-Level Logging

가장 기본 방식입니다.

구조:

Container

Node Log

Agent 수집

장점:

간단한 구성

단점:

Node 장애 시 Log 손실 가능

Sidecar Logging

Container 옆에 Log Container를 함께 실행합니다.

구조:

Application Container

Log Sidecar Container

Log Storage

장점:

Application별 관리 가능

단점:

Resource 증가

Agent 방식

가장 일반적인 Production 방식입니다.

구조:

모든 Node

Logging Agent

중앙 저장소

대규모 Cluster에 적합합니다.

Kubernetes Logging Storage 구성

수집한 Log는 별도 Storage에 저장합니다.

대표 구성:

Elasticsearch

대규모 검색 중심 Logging

Loki

Grafana 기반 Lightweight Logging

Cloud Logging

AWS CloudWatch

Google Cloud Logging

환경에 맞게 선택합니다.

Kubernetes Logging과 Monitoring 차이

두 시스템은 함께 사용됩니다.

구분MonitoringLogging
목적상태 확인원인 분석
데이터MetricText
예시CPU 90%Error Message
도구PrometheusLoki/ELK

장애 분석에서는 두 데이터를 함께 확인해야 합니다.

Kubernetes Logging 장애 분석 과정

실제 운영 흐름:

서비스 오류 발생

Monitoring Alert 확인

관련 Pod 확인

Container Log 확인

Error 분석

원인 해결

Logging은 장애 원인 분석의 핵심 데이터입니다.

Kubernetes Log 보관 정책

Production 환경에서는 Log 보관 기간을 관리해야 합니다.

예:

개발 환경:

7일 보관

운영 환경:

30~90일 보관

보안 환경:

장기간 보관

고려 항목:

  • Storage 비용
  • Compliance
  • 장애 분석 필요성

Kubernetes Logging 운영 시 주의사항

Log가 많다고 항상 좋은 것은 아닙니다.

주의:

항목설명
Log Level 관리불필요한 Log 감소
Storage 관리용량 확보
개인정보 보호민감 정보 제거
검색 성능Index 관리

운영 Logging은 관리 전략이 필요합니다.

Kubernetes Logging과 DevOps 관계

CI/CD와 Runtime Logging은 연결됩니다.

구조:

배포

Application 실행

Log 생성

Monitoring

장애 분석

DevOps 운영에서는 배포 이후 관찰 가능한 환경이 중요합니다.

Kubernetes Logging Architecture 장점

장점설명
장애 분석원인 확인 가능
중앙 관리여러 Node 통합
검색 가능빠른 분석
자동 수집운영 효율 증가

Logging Architecture는 Production Kubernetes 운영의 필수 요소입니다.

자주 묻는 질문

kubectl logs만 사용하면 안 되나요?

가능하지만 대규모 Production 환경에서는 중앙 Logging 시스템이 필요합니다.

Logging Agent는 왜 DaemonSet으로 실행하나요?

모든 Node의 Log를 수집해야 하기 때문입니다.

Monitoring과 Logging 중 무엇이 더 중요한가요?

둘 다 필요합니다.

Monitoring은 문제 발견, Logging은 원인 분석 역할을 합니다.

마무리

Kubernetes Logging Architecture는 Container Log를 수집하고 중앙에서 분석하기 위한 운영 구조입니다.

구성 요소역할
Container LogApplication 기록
DaemonSet AgentLog 수집
StorageLog 저장
Dashboard분석 화면

Logging 구조를 이해하면 Kubernetes 환경에서 장애 원인을 빠르게 찾고 안정적인 Production 서비스를 운영할 수 있습니다.

다음 글에서는 Kubernetes에서 가장 많이 사용하는 Log 수집 Agent인 Fluent Bit 완벽 가이드! Kubernetes Container Log 수집 Agent 운영 구조 이해하기를 알아보겠습니다.

댓글 남기기