쿠버네티스에 설정한 probe 동작을 알아야 하는 이유
- 쿠버네티스 파드가
Not Ready 상태가 되는 원인이 외부 시스템(DB) 부하일 수 있으며, 이때 파드 자체의 문제는 아님을 인지해야 합니다. 🚨
- 프로브 동작을 쿠버네티스 관점이 아닌 애플리케이션 관점에서 이해하는 것이 중요하며, 특히
Readiness Probe가 외부 시스템 상태를 어떻게 검사하는지 알아야 합니다. 🔍
- 스프링 부트 액추에이터의
Readiness Probe는 외부 데이터베이스의 DB_STATUS_UP 상태를 확인하여, DB 부하 시 헬스 체크 실패로 파드가 Not Ready 상태가 될 수 있습니다. 💡
- 프로브 동작을 모르면 장애 발생 시 파드 재시작이나 증설과 같은 부적절한 조치로 인해 장애 복구 시간이 길어질 수 있습니다. ⏳
- 데이터베이스 CPU 100% 부하의 근본 원인은 비효율적인 SQL 쿼리 실행 시간이었으며, 이는
Readiness Probe 실패로 이어집니다. 📈
- 장애 해결을 위해 SQL 쿼리 최적화(예: 인덱스 설정)를 통해 데이터베이스 부하를 줄이는 것이 핵심이며, 이는
Readiness Probe 성공으로 이어집니다. 🛠️
- K6를 이용한 부하 테스트와
sysbench로 더미 데이터 생성, dbeaver로 데이터 확인 등 실제 장애 상황을 재현하는 실습 환경이 제공됩니다. 🧪
- 예제에서는
Liveness Probe가 외부 시스템을 제외하고 파드 내부 상태만 확인하며, Readiness Probe는 외부 시스템(DB) 상태를 포함하여 검사하도록 설정되었습니다. ↔️
데브허브 | DEVHUB | 쿠버네티스에 설정한 probe 동작을 알아야 하는 이유