Kubernetes 환경에서는 수많은 Container가 실행되면서 지속적으로 Log가 발생합니다.
개발 환경에서는 kubectl logs 명령어만으로 충분할 수 있지만 Production 환경에서는 수백 개 이상의 Pod Log를 중앙에서 검색하고 분석할 수 있는 시스템이 필요합니다.
예:
서비스 장애 발생
↓
Error Log 발생
↓
여러 Pod Log 검색 필요
↓
원인 분석
이때 대표적으로 사용하는 Logging Stack이 ELK입니다.
ELK는 다음 세 가지 기술을 조합한 구조입니다.
| 구성 요소 | 역할 |
|---|---|
| Elasticsearch | Log 저장 및 검색 |
| Logstash | Log 수집 및 변환 |
| Kibana | Log 시각화 |
Kubernetes 환경에서는 Fluent Bit 또는 Fluentd를 함께 사용하여 Log를 수집하고 Elasticsearch로 전달하는 구조가 많이 사용됩니다.
ELK 구조를 이해하면 대규모 Kubernetes 환경에서 장애 분석과 Log 관리 시스템을 구축할 수 있습니다.
Kubernetes에서 Elasticsearch가 필요한 이유
Kubernetes 환경에서는 Log 양이 빠르게 증가합니다.
예:
Application 100개
↓
Pod 500개
↓
초당 수천 개 Log
↓
장기간 저장 필요
단순 파일 저장 방식은 한계가 있습니다.
필요 기능:
- 빠른 검색
- 기간별 조회
- Keyword 검색
- Error 분석
- Dashboard 제공
Elasticsearch는 이러한 요구사항을 해결합니다.
Elasticsearch란?
Elasticsearch는 분산형 검색 및 분석 Engine입니다.
특징:
- 대용량 데이터 검색
- Full Text Search
- 분산 저장
- 실시간 분석
Logging 환경에서는 Log 데이터를 저장하고 빠르게 검색하는 역할을 합니다.
Kubernetes ELK Architecture 구조
일반적인 구성:
Application Container
↓
stdout Log
↓
Fluent Bit / Fluentd
↓
Logstash
↓
Elasticsearch
↓
Kibana
↓
운영자 분석
각 Component가 역할을 분리합니다.
Elasticsearch와 Kubernetes 관계
Elasticsearch는 Kubernetes에서도 Container 형태로 운영할 수 있습니다.
구조:
StatefulSet
↓
Elasticsearch Pod
↓
Persistent Volume
↓
Storage
Elasticsearch는 데이터를 유지해야 하기 때문에 StatefulSet과 Storage 구성이 중요합니다.
Elasticsearch와 StatefulSet 관계
Elasticsearch Cluster는 Node Identity가 필요합니다.
예:
elasticsearch-0
elasticsearch-1
elasticsearch-2
각 Node가 고유한 역할을 가지고 데이터를 저장합니다.
따라서 Deployment보다 StatefulSet이 적합합니다.
Elasticsearch Storage 구성
Logging Storage는 많은 데이터를 저장합니다.
구조:
Elasticsearch Pod
↓
PVC
↓
Persistent Volume
↓
Disk Storage
운영 환경에서는 Storage 성능이 검색 속도에 직접적인 영향을 줍니다.
Logstash 역할
Logstash는 Log 데이터를 변환하는 Pipeline 역할을 합니다.
동작:
Log Input
↓
Filter 처리
↓
Output 전달
예:
Raw Log:
ERROR connection failed
변환:
{
"level":"error",
"message":"connection failed",
"service":"payment"
}
검색하기 좋은 형태로 변경합니다.
Fluent Bit과 Logstash 관계
두 Component는 역할이 다릅니다.
| 구분 | 역할 |
|---|---|
| Fluent Bit | Log 수집 |
| Logstash | Log 변환 |
| Elasticsearch | 저장 |
| Kibana | 검색 |
필요에 따라 함께 구성합니다.
Kibana란?
Kibana는 Elasticsearch 데이터를 시각화하는 Dashboard 도구입니다.
가능한 작업:
- Log 검색
- Error 분석
- 시간별 조회
- Dashboard 생성
운영자가 장애 원인을 찾는 화면 역할을 합니다.
Kubernetes ELK 설치 구조
Production 환경에서는 Helm을 활용합니다.
구조:
Helm Chart
↓
Elasticsearch 설치
↓
Logstash 설치
↓
Kibana 설치
↓
Storage 연결
복잡한 Logging Stack을 자동 구성할 수 있습니다.
Elasticsearch Index 관리
Elasticsearch는 Log를 Index 단위로 관리합니다.
예:
application-log-2026-08
↓
오늘 Log 저장
운영에서는 Index 관리가 중요합니다.
관리 항목:
- Index 생성
- Rotation
- 삭제 정책
- Storage 관리
Elasticsearch Log Retention 관리
Log는 계속 증가하기 때문에 보관 정책이 필요합니다.
예:
최근 30일
↓
빠른 검색 유지
오래된 Log
↓
삭제 또는 Archive
Storage 비용을 관리합니다.
Kubernetes Elasticsearch 장애 사례
| 문제 | 원인 |
|---|---|
| Pod Pending | Storage 부족 |
| Cluster Yellow | Replica 문제 |
| Cluster Red | Data 손상 |
| 검색 느림 | Index 증가 |
| Memory 부족 | Heap 설정 문제 |
Elasticsearch는 Resource 관리가 중요합니다.
Elasticsearch Resource 관리
Elasticsearch는 Memory 사용량이 높습니다.
설정 필요:
- CPU Request
- Memory Request
- JVM Heap
- Storage Capacity
잘못 설정하면 Node 장애로 이어질 수 있습니다.
Kubernetes ELK와 Observability
현대 Kubernetes Observability 구조:
Metric
↓
Prometheus
Log
↓
Elasticsearch / Loki
Trace
↓
Jaeger / Tempo
세 가지 데이터를 함께 분석합니다.
Kubernetes Loki와 Elasticsearch 비교
| 구분 | Loki | Elasticsearch |
|---|---|---|
| 검색 방식 | Label 기반 | Index 기반 |
| Resource | 낮음 | 높음 |
| 대규모 검색 | 제한적 | 강력 |
| 운영 난이도 | 낮음 | 높음 |
환경과 목적에 따라 선택합니다.
Kubernetes ELK 운영 전략
Production 환경:
Log Format 통일
↓
Agent 배포
↓
Storage 설계
↓
Index 관리
↓
Dashboard 구성
↓
Alert 연결
체계적인 Logging 운영이 필요합니다.
Kubernetes Elasticsearch 장점
| 장점 | 설명 |
|---|---|
| 강력한 검색 | 대규모 Log 분석 |
| 확장성 | 분산 저장 가능 |
| Dashboard | Kibana 제공 |
| Enterprise 활용 | 대규모 운영 적합 |
ELK는 오랜 기간 사용된 대표적인 Logging Architecture입니다.
자주 묻는 질문
Elasticsearch는 Kubernetes에서 꼭 필요한가요?
아닙니다.
서비스 규모와 Log 분석 요구사항에 따라 Loki 또는 Cloud Logging을 선택할 수 있습니다.
Elasticsearch는 왜 StatefulSet을 사용하나요?
데이터 저장과 Node Identity 유지가 필요하기 때문입니다.
ELK와 Loki 중 어떤 것이 좋은가요?
작고 효율적인 Kubernetes 환경은 Loki, 대규모 검색과 분석은 Elasticsearch가 적합합니다.
마무리
Kubernetes Elasticsearch는 대규모 Container Log를 저장하고 검색하기 위한 Enterprise Logging 시스템입니다.
| 구성 요소 | 역할 |
|---|---|
| Elasticsearch | Log 저장·검색 |
| Logstash | Log 변환 |
| Kibana | 시각화 |
| Fluent Bit | Log 수집 |
ELK 구조를 이해하면 Kubernetes Production 환경에서 장애 분석과 Log 관리를 체계적으로 수행할 수 있습니다.
다음 글에서는 Kubernetes 전체 관찰성을 다루는 Kubernetes Observability 완벽 가이드! Metric·Log·Trace 기반 장애 분석 구조 이해하기를 알아보겠습니다.