![[쿠버네티스] Probe (TS러버)](https://cdn.inflearn.com/public/files/blogs/b10599ee-294e-4738-a8be-7fadace59714/kubernetes_image.png)
[쿠버네티스] Probe (TS러버)
해당 블로그는 [쿠버네티스 어나더 클래스] 강의에 일부 내용입니다. 복습을 위한 자료 입니다.
강의 링크 :https://inf.run/f2xSR
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는 단순한 기능이 아니라 쿠버네티스가 추구하는 "자율 복구 기반 인프라"의 핵심 구성 요소입니다.
댓글을 작성해보세요.