Search

000-overview

Tag
Experiments

Chaos Lab — 프로젝트 개요

프로젝트명: chaos-lab 목적: Kubernetes 환경에 애플리케이션을 배포하고, Chaos Mesh로 장애를 주입하여 서비스 영향과 복구 흐름, 관측성 개선 결과를 확인하는 실험 프로젝트

1. 프로젝트 소개

chaos-lab은 Kubernetes 클러스터에 podinfo 애플리케이션을 배포하고, Chaos Mesh를 사용해 여러 장애 상황을 주입한 뒤 서비스에 어떤 영향이 발생하는지 관찰한 프로젝트다.
실험에서는 k6로 일정한 트래픽을 발생시키고, Prometheus와 Grafana를 통해 latency, error rate, Ready Pod 수, HPA 동작, CPU 사용률, 네트워크 지표를 확인했다. 또한 PrometheusRule과 Alertmanager를 사용해 주요 장애 상황이 Discord 알림으로 전달되는지도 검증했다.
이 프로젝트의 핵심은 장애를 단순히 주입하는 것이 아니라, 장애 발생 전후의 지표를 비교하고, 필요한 경우 대시보드나 alert rule을 개선한 뒤 다시 검증하는 것이다.

2. 환경 구성

구성 요소
내용
플랫폼
Kubernetes 로컬 클러스터
대상 애플리케이션
podinfo
진입점
NGINX Ingress Controller
Load Balancer
MetalLB
CNI
Cilium
장애 주입 도구
Chaos Mesh
부하 생성 도구
k6
메트릭 수집
Prometheus
시각화
Grafana
알림
Alertmanager → Discord
GitOps
ArgoCD

3. 실험 방식

모든 실험은 동일한 흐름으로 진행했다.
1.
정상 상태에서 Baseline을 측정한다.
2.
Chaos Mesh로 장애를 주입한다.
3.
k6로 동일한 부하를 발생시킨다.
4.
Grafana에서 주요 지표 변화를 확인한다.
5.
실험 결과를 Baseline과 비교한다.
6.
필요한 경우 dashboard, alert rule, ingress 설정을 개선한다.
7.
같은 조건으로 재실험하여 개선 효과를 확인한다.

4. 공통 관찰 지표

영역
관찰 지표
트래픽
request rate, success count, fail count
오류
failed rate, 5xx error rate, checks rate
지연
p50, p90, p95, p99, max latency
Pod 상태
Ready Pod 수, Pod phase, restart count
리소스
CPU usage, CPU throttling, memory usage
스케일링
HPA current/desired replicas
네트워크
receive/transmit, packet drops, packet errors
Ingress
ingress latency p95/p99
알림
alert firing/resolved, Discord notification

5. 실험 목록

실험
내용
Baseline
정상 상태 기준 지표 측정
Pod Failure
Pod 장애 주입 후 Ready Pod, restart, alert 동작 확인
Network Delay
네트워크 지연 주입 후 latency 변화와 Ingress latency alert 검증
CPU Stress
CPU 부하 주입 후 HPA scale-out과 CPU 관련 alert 검증
Network Loss
패킷 손실 주입 후 실패율과 tail latency 변화, Ingress retry 설정 검증
Complex Failure
Pod Failure와 Network Delay를 함께 주입한 복합 장애 관찰

6. 주요 개선 내용

실험 과정에서 다음 개선을 적용했다.
영역
개선 내용
Pod Failure
Pod restart / Ready Pod 감소 감지를 위한 alert rule 개선
CPU Stress
CPU usage, CPU throttling, HPA max replica alert 추가
Network Loss
Ingress retry/timeout 설정을 조정하고 결과 비교
Network Delay
Ingress latency 패널과 high latency alert 추가
Dashboard
장애 시나리오별 핵심 지표를 한 화면에서 볼 수 있도록 Grafana dashboard 개선