[쿠버네티스] Probe (TS러버)

[쿠버네티스] Probe (TS러버)

해당 블로그는 [쿠버네티스 어나더 클래스] 강의에 일부 내용입니다. 복습을 위한 자료 입니다.


1. Pod 상태를 자동으로 점검하는 기능 - Probe

쿠버네티스는 애플리케이션의 상태 확인과 복구를 자동화하기 위해 Probe 기능을 제공합니다.
이 기능은 애플리케이션이 느리게 시작되거나 일시적으로 장애가 발생해도 자동으로 대처할 수 있도록 도와줍니다.

Probe는 총 3가지로 구성됩니다:

  • Startup Probe: 애플리케이션 기동 확인 (초기화 시간 보호)

  • Readiness Probe: 트래픽 수신 준비 여부 확인

  • Liveness Probe: 애플리케이션이 살아있는지 감시

각 Probe는 설정된 엔드포인트(/health, /ready 등)를 주기적으로 호출하여 상태를 점검하며, 실패 시에는 자동으로 트래픽 차단, 컨테이너 재시작 등의 액션이 수행됩니다.

 

2. Pod 내에서 Probe가 동작하는 흐름

  • Pod가 생성되면 가장 먼저 Startup Probe가 동작하여 애플리케이션이 정상 기동 중인지 판단합니다.

    • ex) Spring Boot처럼 시작이 느린 앱도 무작정 재시작되지 않도록 보호

  • Startup Probe가 성공하면, Readiness, Liveness Probe가 동시에 시작됩니다.

  • Readiness Probe는 Service 대상 등록 여부에 영향을 주며, 실패 시 트래픽 차단만 수행됩니다.

  • Liveness Probe는 실제 컨테이너 재시작 조건이 되는 핵심 Probe입니다.

Probe는 HTTP 요청 또는 TCP 연결, 커맨드 실행 방식 중 선택할 수 있으며, periodSeconds, failureThreshold 등의 옵션을 통해 감지 민감도를 조절할 수 있습니다.

3. Probe 적용 예시 (YAML)

livenessProbe:
  httpGet:
    path: /health
    port: 8080
  initialDelaySeconds: 10
  periodSeconds: 10
  failureThreshold: 3

readinessProbe:
  httpGet:
    path: /ready
    port: 8080
  periodSeconds: 5
  failureThreshold: 2

startupProbe:
  httpGet:
    path: /startup
    port: 8080
  periodSeconds: 10
  failureThreshold: 10
  • startupProbe: 10초마다 /startup 체크 → 최대 100초까지 실패 허용

  • readinessProbe: /ready 실패 시 트래픽 차단

  • livenessProbe: /health 실패 시 컨테이너 자동 재시작

 

4. 정리

과거에는 애플리케이션이 정상적으로 동작하지 않아도 운영자가 수동으로 조치해야 했습니다.
하지만 Probe는 애플리케이션 상태 판단 → 트래픽 차단 또는 자동 복구의 흐름을 자동화함으로써:

  • 운영 복잡도를 줄이고

  • 무중단 배포와 장애 자가 복구를 실현하며

  • 회복탄력성 있는 시스템을 구축할 수 있게 해줍니다.

Probe는 단순한 기능이 아니라 쿠버네티스가 추구하는 "자율 복구 기반 인프라"의 핵심 구성 요소입니다.

 

 

 

댓글을 작성해보세요.

채널톡 아이콘