[섹션8] Application 기능으로 이해하기

·2025년 6월 7일

Probe

Kubernetes에서 컨테이너 상태를 확인하고, 장애에 자동 대응하기 위해 startupProbe, livenessProbe, readinessProbe를 설정할 수 있다.
각 probe는 시점과 목적이 다르며, 올바르게 설정하면 서비스의 안정성과 신뢰성을 높일 수 있다.


1. startupProbe

역할:

  • 애플리케이션이 "기동 중"일 때만 실행됨.
  • 기동이 끝나기 전까지는 livenessProbereadinessProbe는 대기 상태.
  • 지정된 시간 내 기동하지 못하면 컨테이너 종료 및 재시작.

사용 예시:

  • 느리게 뜨는 Spring Boot, JAR 기반 앱 등에 효과적.

설정 예시:

startupProbe:
  httpGet:
    path: "/ready"
    port: 8080
  periodSeconds: 10
  failureThreshold: 10  # 최대 100초 동안 실패 허용

2. livenessProbe

역할:

  • 애플리케이션이 정상적으로 동작 중인지 확인.
  • 실패할 경우, Pod를 재시작하여 장애 복구.

사용 예시:

  • 서버가 완전히 뻗었거나, GC 루프에 빠진 경우 자동 복구.

설정 예시:

livenessProbe:
  httpGet:
    path: "/ready"
    port: 8080
  periodSeconds: 10
  failureThreshold: 2  # 2번 실패하면 재시작

3. readinessProbe

역할:

  • 애플리케이션이 트래픽 수신 준비가 되었는지 확인.
  • 실패 시, 해당 Pod는 Service 라우팅에서 제외되지만 재시작은 하지 않음.

사용 예시:

  • DB 연결이 지연되었거나, 캐시 로딩 중일 때 사용.

설정 예시:

readinessProbe:
  httpGet:
    path: "/ready"
    port: 8080
  periodSeconds: 10
  failureThreshold: 2  # 2번 실패하면 트래픽 제외

시나리오 요약

  1. startupProbe 실패 중 → livenessProbereadinessProbe실행되지 않음
  2. startupProbe 성공 → 애플리케이션 기동 완료 → 나머지 probe 활성화
  3. readinessProbe 실패 → 트래픽 제외, Pod는 유지
  4. livenessProbe 실패 → Pod 재시작

한줄 요약

Probe목적실패 시 행동
startupProbe앱 기동 확인컨테이너 종료/재시작
livenessProbe앱이 살아있는지 확인컨테이너 재시작
readinessProbe트래픽 받을 준비 되었는지 확인트래픽 라우팅에서 제외됨


출처 - 인프런 : 쿠버네티스 어나더 클래스 - 지상편

profile
DevOps를 기반으로 한 클라우드, 알고리즘, 백엔드 관심있는 컴공생

0개의 댓글