정상 상태 점검(Health Probe) 패턴은 애플리케이션이 쿠버네티스와 정상 상태 여부를 주고받는 방법에 관한 패턴입니다.
Process health는 Kubelet이 컨테이너 프로세스에 대해 지속적으로 수행하는 가장 단순한 확인 방식입니다.

livenessProbe 구성을 기반으로, 주기(periodSeconds)마다 Run Handler를 실행합니다.httpGet, tcpSocket, exec 방식 중 하나로 상태를 점검합니다.healthy로 판단하고 그대로 유지합니다.unhealthy로 간주합니다.failureThreshold 횟수만큼 연속 실패하면 Kubelet이 컨테이너를 재시작합니다.
apiVersion: v1
kind: Pod
metadata:
labels:
test: liveness
name: liveness-http
spec:
containers:
- name: liveness
image: registry.k8s.io/e2e-test-images/agnhost:2.40
args:
- liveness
livenessProbe:
httpGet:
path: /healthz
port: 8080
httpHeaders:
- name: Custom-Header
value: Awesome
initialDelaySeconds: 30
periodSeconds: 3
timeoutSeconds: 3
failureThreshold: 2
initialDelaySeconds: 최초 점검 전 대기 시간periodSeconds: 점검 주기(초)timeoutSeconds: 응답 제한 시간failureThreshold: 연속 실패 허용 횟수⇒ LivenessProbe는 문제의 근본 원인을 해결하지 않고 컨테이너를 재시작하므로, 적절한 설계가 필요합니다.

/ready 호출, DB 연결 가능 여부, TCP 연결 가능 여부 확인.
apiVersion: v1
kind: Pod
metadata:
name: pod-with-readiness-check
spec:
containers:
- image: k8spatterns/random-generator:1.0
name: random-generator
readinessProbe:
exec:
command: { "stat", "/var/run/random-generator-ready"

startupProbe 구성을 기반으로, 컨테이너 시작 시 Run Handler를 실행합니다.httpGet, tcpSocket, exec 방식 중 하나로 애플리케이션의 기동 여부를 점검합니다.healthy로 판단하고, Liveness/Readiness Probe를 활성화합니다.unhealthy로 간주하며, Liveness/Readiness Probe를 비활성 상태로 유지합니다.failureThreshold 횟수만큼 연속 실패하면 Kubelet이 컨테이너를 재시작합니다.startupProbe:
httpGet:
path: /healthz
port: liveness-port
failureThreshold: 30
periodSeconds: 10
| 구분 | 목적 | 동작 시점 | 실패 시 동작 | 사용 예 | 비고 |
|---|---|---|---|---|---|
| LivenessProbe | 앱이 살아 있는지 확인 | 실행 중 지속 | 재시작 | Deadlock, 장시간 응답 없음 | 응답은 있으나 기능이 멈춘 경우도 감지 |
| ReadinessProbe | 트래픽 수신 준비 여부 확인 | 실행 후 지속 | 엔드포인트 제거 | 초기화 후 트래픽 시작, DB 오류 시 트래픽 차단 | 재시작 없음 |
| StartupProbe | 초기 기동 상태 확인 | 시작 시 1회 | 재시작 | 대규모 데이터 로딩, JIT 컴파일 | 긴 로딩 시간 보호 |

failureThreshold 횟수만큼 연속 실패하면, Kubelet이 컨테이너를 재시작합니다.healthy로 평가되면 Service Endpoint에 등록되고, unhealthy일 경우는 등록 해제됩니다.Ready 상태가 되면, Liveness Probe가 주기적으로 실행되어 컨테이너가 계속 동작 중인지 확인합니다.failureThreshold 기준에 따라 컨테이너를 재시작합니다.| 순서 | Probe 유형 | 역할 요약 |
|---|---|---|
| 1 | Startup Probe | 애플리케이션이 시작되지 않았다면 Liveness/Readiness을 차단 |
| 2 | Readiness Probe | 트래픽 수신 준비 여부 판단, Service Endpoint 등록/제거 |
| 3 | Liveness Probe | 실행 중인 애플리케이션의 정상 상태 지속 여부 확인, 실패 시 재시작 |
그림이 좋았어요