Kubernetes 환경에서는 수많은 Container와 Pod가 동시에 실행됩니다.
Application 장애가 발생했을 때 가장 먼저 확인해야 하는 정보는 Log입니다.
하지만 Kubernetes Container Log는 Pod 내부에 저장되며 Pod가 삭제되면 함께 사라질 수 있습니다.
예:
Application 실행
↓
Container Log 생성
↓
Pod 장애 발생
↓
Pod 삭제
↓
Log 손실 가능
이를 해결하기 위해 Kubernetes에서는 중앙 집중식 Logging Architecture를 구성합니다.
| 구성 요소 | 역할 |
|---|---|
| Container Runtime | Log 생성 |
| Fluent Bit | Log 수집 |
| Loki | Log 저장 |
| Grafana | Log 검색 및 시각화 |
| Elasticsearch | 대규모 Log 분석 |
Logging 구조를 이해하면 Kubernetes 장애 분석과 Application 운영 품질을 크게 향상시킬 수 있습니다.
Kubernetes Logging이 필요한 이유
Kubernetes는 동적으로 변화하는 환경입니다.
Pod 생성
↓
Node 이동
↓
Container 재시작
↓
새로운 Log 생성
기본 방식:
kubectl logs pod-name
문제:
- Pod 삭제 시 Log 손실
- 여러 Pod Log 관리 어려움
- 장애 원인 추적 어려움
따라서 중앙 Logging 시스템이 필요합니다.
Kubernetes Logging Architecture
전체 구조:
Application
↓
Container
↓
Container Runtime
↓
Log Collector
↓
Log Storage
↓
Dashboard
대표 구성:
Pod
↓
Fluent Bit
↓
Loki
↓
Grafana
Cloud Native 환경에서 많이 사용하는 구조입니다.
Kubernetes Container Log 구조
Container Log는 기본적으로 표준 출력(stdout)과 표준 오류(stderr)를 기반으로 생성됩니다.
흐름:
Application
↓
stdout / stderr
↓
Container Runtime
↓
Node Log 파일
↓
Log Collector
Kubernetes는 Application 내부 Log 파일보다 표준 출력 사용을 권장합니다.
Kubernetes Fluent Bit이란?
Fluent Bit은 경량 Log Collector입니다.
역할:
- Container Log 수집
- Log Parsing
- Metadata 추가
- Log 전달
특징:
- 가벼운 Resource 사용
- Kubernetes 지원
- 빠른 처리 속도
대규모 Cluster에서 많이 사용됩니다.
Kubernetes Fluent Bit 동작 구조
구조:
Node
↓
Fluent Bit DaemonSet
↓
Log 수집
↓
Loki / Elasticsearch 전송
Fluent Bit은 모든 Node에서 실행되어 Log를 수집합니다.
Kubernetes DaemonSet과 Logging
Fluent Bit은 일반적으로 DaemonSet으로 배포됩니다.
이유:
Node마다 하나의 Log Collector 필요
구조:
Node 1
↓
Fluent Bit
Node 2
↓
Fluent Bit
Node 3
↓
Fluent Bit
모든 Container Log를 수집합니다.
Kubernetes Loki란?
Loki는 Grafana Labs에서 개발한 Log Aggregation 시스템입니다.
특징:
- Kubernetes 친화적
- Label 기반 Log 검색
- Prometheus와 유사한 구조
- 효율적인 저장 방식
Grafana와 함께 많이 사용됩니다.
Kubernetes Loki Architecture
구조:
Fluent Bit
↓
Promtail / Loki Agent
↓
Loki
↓
Grafana
Log 저장과 검색을 담당합니다.
Kubernetes Elasticsearch Logging 구조
대규모 환경에서는 ELK Stack도 사용합니다.
구성:
| 구성 요소 | 역할 |
|---|---|
| Elasticsearch | Log 저장 및 검색 |
| Logstash | Log 처리 |
| Kibana | 시각화 |
| Filebeat | Log 수집 |
많은 기업 환경에서 활용됩니다.
Kubernetes Loki와 Elasticsearch 비교
| 구분 | Loki | Elasticsearch |
|---|---|---|
| 목적 | Cloud Native Log | 대규모 검색 분석 |
| Resource | 가벼움 | 상대적으로 큼 |
| 검색 방식 | Label 기반 | Full Text 검색 |
| Kubernetes | 매우 적합 | 범용적 |
환경에 따라 선택합니다.
Kubernetes Log 확인 방법
기본 확인:
kubectl logs pod-name
이전 Container Log:
kubectl logs pod-name --previous
실시간 확인:
kubectl logs -f pod-name
장애 분석에서 가장 기본적인 명령어입니다.
Kubernetes Logging 장애 분석
Log가 보이지 않을 경우 확인합니다.
Pod 상태 확인
kubectl get pods
Fluent Bit 확인
kubectl get pods -n logging
Collector Log 확인
kubectl logs fluent-bit-pod
수집 Layer부터 확인합니다.
Kubernetes Application Log Best Practice
좋은 Logging 방식:
- JSON Format 사용
- Timestamp 포함
- Error Level 구분
- Request ID 포함
- 민감 정보 제외
운영 환경 분석 효율이 높아집니다.
Kubernetes Logging과 Monitoring 연결
Monitoring:
현재 상태 확인
Logging:
문제 원인 분석
예:
CPU 증가 감지
↓
Prometheus Alert
↓
Grafana 확인
↓
Log 분석
↓
원인 해결
둘은 함께 운영해야 합니다.
Kubernetes Observability 구조
현대 Cloud Native 환경:
Metrics
↓
Prometheus
Logs
↓
Loki
Traces
↓
Jaeger
↓
Observability Platform
Application 내부 동작을 분석할 수 있습니다.
Kubernetes Logging 운영 전략
Production 환경:
Log 수집 정책 설정
↓
Central Logging 구축
↓
Retention 관리
↓
검색 Dashboard 구성
↓
Alert 연결
운영 안정성을 높일 수 있습니다.
Kubernetes Logging 장점
| 장점 | 설명 |
|---|---|
| 장애 분석 | 원인 추적 가능 |
| 중앙 관리 | 여러 Pod 통합 |
| 운영 효율 | 검색 편리 |
| Observability 강화 | 서비스 이해 향상 |
Logging은 Kubernetes 운영의 필수 요소입니다.
자주 묻는 질문
Kubernetes Log는 어디에 저장되나요?
기본적으로 Node의 Container Runtime Log 위치에 저장되며 중앙 Logging 시스템으로 전달할 수 있습니다.
Fluent Bit과 Fluentd 차이는 무엇인가요?
Fluent Bit은 가볍고 빠른 Log Collector이며 Fluentd는 더 많은 처리 기능을 가진 확장형 Collector입니다.
Loki와 Elasticsearch 중 어떤 것을 사용해야 하나요?
Kubernetes 중심 환경은 Loki, 복잡한 검색과 분석이 필요하면 Elasticsearch를 고려합니다.
마무리
Kubernetes Logging은 Container Log를 중앙에서 수집하고 분석하여 안정적인 Application 운영을 가능하게 하는 핵심 기술입니다.
| 구성 요소 | 역할 |
|---|---|
| Fluent Bit | Log 수집 |
| Loki | Log 저장 |
| Grafana | 시각화 |
| Elasticsearch | 검색 분석 |
Logging 구조를 이해하면 Kubernetes 장애 원인을 빠르게 찾고 Production 환경을 안정적으로 운영할 수 있습니다.
다음 글에서는 Kubernetes 보안 운영 영역인 Kubernetes Security 완벽 가이드! RBAC·Pod Security·Network 보안 구조 이해하기를 진행하겠습니다.