카테고리 없음
[쿠버네티스] Probe
rosaleee
2025. 6. 8. 20:39
Kubernetes의 Pod의 상태를 체크하는 핵심 기능인 probe
을 알아보겠습니다.
쿠버네티스 프로브란?
쿠버네티스에서는 컨테이너 상태를 파악하기 위해 3가지 probe를 제공합니다.
Probe 종류 | 역할 | 실패 시 동작 |
주요 활용 전략 |
---|---|---|---|
startupProbe |
앱 기동 중인지 확인 | 실패 시 컨테이너 재시작 | 초기 부팅 지연 대응. readiness/liveness 보호 역할 |
readinessProbe |
트래픽 받을 준비 되었는지 확인 | 실패 시 서비스에서 제외 | 트래픽 차단으로 사용자 오류 방지 및 부하 완화 |
livenessProbe |
애플리케이션이 살아있는지 확인 | 실패 시 컨테이너 재시작 | 치명적 장애에 대한 자동 복구 |
1. 앱 기동 중: startupProbe
- 초기화 중엔 API 응답이 없지만, startupProbe는 재시작하지 않고 기다립니다.
2. 준비 완료: readinessProbe
- DB 연결, 외부 API 연동 성공 → readinessProbe 성공 → 서비스로부터 트래픽 수신 시작
3. 장애 발생: readinessProbe 실패
- 일시적 장애 발생 시 트래픽 차단됨. 앱은 살아 있으므로 재기동은 없음.
4. 치명적 장애: livenessProbe 실패
- 앱이 응답하지 않으면 livenessProbe 실패 → 컨테이너 자동 재시작
YAML 설정 예시
# 앱이 완전히 뜰 때까지 기다리는 프로브 (초기화 감지용)
startupProbe:
httpGet: # HTTP 요청으로 상태 확인
path: "/startup" # /startup 엔드포인트 호출
port: 8080 # 8080 포트에서 실행 중인 앱 기준
periodSeconds: 5 # 5초마다 한번씩 상태 체크
failureThreshold: 24 # 24번 연속 실패 시 컨테이너 재시작
# 즉, 최대 5초 × 24 = 120초 (2분)까지 대기
# 앱이 준비 완료되었는지 확인하는 프로브 (트래픽 수신 여부 결정)
readinessProbe:
httpGet:
path: "/readiness" # /readiness 엔드포인트 호출
port: 8080
periodSeconds: 10 # 10초마다 한번 체크
failureThreshold: 3 # 3번 실패하면 이 Pod에는 트래픽 안 보냄
# 앱이 살아있는지 확인하는 프로브 (치명적 장애 감지용)
livenessProbe:
httpGet:
path: "/liveness" # /liveness 엔드포인트 호출
port: 8080
periodSeconds: 10 # 10초마다 체크
failureThreshold: 3 # 3번 연속 실패 시 컨테이너 재시작