Summary#
K8s 헬스 프로브 3종은 실패 시 동작이 다르다: liveness는 컨테이너 재시작, readiness는 Service endpoint/트래픽에서 제외, startup은 느린 초기화 동안 liveness/readiness 판단을 지연시키는 용도다. 단, startupProbe가 failureThreshold × periodSeconds로 정한 허용 시간 안에 성공하지 못하면 kubelet은 컨테이너를 실패로 보고 재시작할 수 있다. liveness를 과도하게 민감하게 잡거나 외부 의존성(DB 등)을 포함하면 일시적 지연이 재시작 루프를 유발할 수 있다.
Outcome#
| 프로브 | 실패 시 동작 | 언제 사용 | 주의 |
|---|---|---|---|
| liveness | 컨테이너 재시작 | 교착 상태·완전 멈춤·복구 불가능 상태 감지 | 외부 의존성 체크 금지, 임계값 보수적으로 설정 |
| readiness | Service endpoint에서 제거되어 트래픽 차단 | 초기화 중, DB 연결 대기, 배치/백프레셔 중 | 재시작 없음, 트래픽 제어 용도 |
| startup | 성공 전까지 liveness/readiness 판단을 지연한다. 임계 실패 횟수를 넘으면 컨테이너가 재시작될 수 있다 | 느린 앱, JVM 워밍업, 큰 캐시 로딩 | failureThreshold × periodSeconds를 최대 초기화 허용 시간으로 설계 |
FastAPI 실전 예#
livenessProbe:
httpGet:
path: /health/live # 프로세스 생존만 확인: 단순 200 권장
port: 8000
initialDelaySeconds: 30
periodSeconds: 10
failureThreshold: 3 # 30초 연속 실패 시 재시작
readinessProbe:
httpGet:
path: /health/ready # DB 연결·캐시 준비 등 트래픽 수용 가능성 확인
port: 8000
periodSeconds: 5
failureThreshold: 2
startupProbe:
httpGet:
path: /health/live # 보통 liveness와 같은 가벼운 체크를 재사용 가능
port: 8000
failureThreshold: 30 # 최대 300초 (30 × 10s) 대기
periodSeconds: 10
Key Points#
- liveness probe에 DB 쿼리 포함 금지: DB 지연이 애플리케이션 재시작 루프를 유발할 수 있다.
- readiness failure는 재시작하지 않는다: Pod는 실행 상태로 남고 Service endpoint/로드밸런싱 대상에서만 제외된다.
- startup probe는 느린 시작을 위한 안전장치: 성공 전까지 liveness/readiness 실패 판정을 막아
initialDelaySeconds추측을 줄인다. - startup probe는 무한 대기가 아니다:
failureThreshold × periodSeconds안에 성공하지 못하면 컨테이너가 실패 처리되어 재시작 루프가 생길 수 있다. - 엔드포인트는 보통
/health/live(간단),/health/ready(의존성/준비 상태) 2개면 충분하다./health/startup을 별도로 둘 수는 있지만 필수는 아니며, startupProbe는/health/live같은 가벼운 체크를 재사용해도 된다.
Caveats#
- readiness는 트래픽 차단 장치이지 전체 배포의 무중단을 단독 보장하지 않는다.
- Deployment 롤링 업데이트의 가용성은 주로
maxUnavailable,maxSurge, readiness probe,minReadySeconds조합으로 설계한다. - PodDisruptionBudget(PDB)은 노드 드레인 등 voluntary disruption에 대한 안전망으로 유용하지만, readiness failure 자체나 Deployment rollout 가용성을 단독으로 해결하는 장치는 아니다.
- liveness
failureThreshold/timeoutSeconds가 너무 낮으면 순간적인 CPU 폭주, GC pause, 네트워크 지연에도 정상 Pod가 재시작될 수 있다.
Related Vault Evidence#
personal_vault/projects/gemma-agent/k8s-liveness-readiness-probes/evidence.md: readiness는 Pod IP를 Service endpoint에서 제거하고, liveness는 컨테이너 재시작을 유발한다는 동일 핵심을 설명한다.personal_vault/knowledge/dev/kubernetes-advanced.md: PDB, rollout, 운영 안정성 관련 Kubernetes 운영 맥락을 제공한다.personal_vault/projects/ops/librarian/capsules/Kubernetes Probe Failure Modes and Rollout Design.md: startupProbe가 허용 시간 안에 성공하지 못하면 컨테이너 재시작으로 이어질 수 있음을 보강 근거로 제공한다.
Sagwan Revalidation 2026-06-08T03:33:24Z#
- verdict:
ok - note: K8s probe 동작과 권장 practice가 현재 문서 기준으로도 유효하다.
Sagwan Revalidation 2026-06-09T03:37:45Z#
- verdict:
ok - note: K8s 프로브 동작과 권장안이 현재 practice와 Kubernetes 문서에 부합함
Sagwan Revalidation 2026-06-10T09:07:15Z#
- verdict:
ok - note: 프로브별 동작과 권장 기준이 현재 Kubernetes practice와 일치한다.
Sagwan Revalidation 2026-06-11T09:23:35Z#
- verdict:
ok - note: K8s 프로브 동작과 권장 관행이 현재 문서·실무와 부합한다.
Sagwan Revalidation 2026-06-12T09:40:51Z#
- verdict:
ok - note: [chatgpt HTTP 401] {
Sagwan Revalidation 2026-06-13T09:58:19Z#
- verdict:
ok - note: K8s 프로브 동작과 권장안이 현재 문서·실무와 대체로 일치함
Sagwan Revalidation 2026-06-14T10:49:14Z#
- verdict:
ok - note: K8s probe 동작·권장안이 현재 practice와 문서 기준에 부합한다.
Sagwan Revalidation 2026-06-15T11:30:10Z#
- verdict:
ok - note: K8s 프로브 동작·권장 기준이 현재 practice와도 일치한다.
Sagwan Revalidation 2026-06-16T11:41:24Z#
- verdict:
ok - note: K8s probe 동작과 권장안이 현재 문서·실무와 일치함
Sagwan Revalidation 2026-06-17T11:56:15Z#
- verdict:
ok - note: K8s probe 동작과 권장 기준이 현재 문서·실무와 대체로 일치함
Sagwan Revalidation 2026-06-18T12:01:22Z#
- verdict:
ok - note: K8s 프로브 동작과 권장안이 현재 practice와 일치한다.
Sagwan Revalidation 2026-06-19T13:57:23Z#
- verdict:
ok - note: Kubernetes probe 동작과 권장 관행이 현재도 유효하다.
Sagwan Revalidation 2026-06-20T14:09:37Z#
- verdict:
ok - note: Kubernetes probe 동작과 권장 practice가 현재도 유효하다.
Sagwan Revalidation 2026-06-21T14:57:49Z#
- verdict:
ok - note: K8s probe 동작과 권장 practice가 현재도 유효해 변경 불필요.
Sagwan Revalidation 2026-06-22T15:09:38Z#
- verdict:
ok - note: [chatgpt HTTP 401] {
Sagwan Revalidation 2026-06-23T15:37:28Z#
- verdict:
ok - note: [chatgpt HTTP 401] {
Sagwan Revalidation 2026-06-24T16:23:29Z#
- verdict:
ok - note: [chatgpt HTTP 401] {
Sagwan Revalidation 2026-06-25T17:56:29Z#
- verdict:
ok - note: K8s probe 동작과 권장안이 현재 관행과 문서 기준에 부합함
Sagwan Revalidation 2026-06-26T21:35:22Z#
- verdict:
ok - note: K8s 프로브 동작과 권장안이 최신 practice와 일치해 변경 불필요.
Sagwan Revalidation 2026-06-27T23:57:31Z#
- verdict:
ok - note: 프로브별 동작·권장안이 최신 Kubernetes practice와 부합한다.
Sagwan Revalidation 2026-06-29T00:34:58Z#
- verdict:
ok - note: K8s probe 동작과 권장안이 현재 문서·실무와 부합한다.
Sagwan Revalidation 2026-06-30T00:42:27Z#
- verdict:
ok - note: K8s 프로브 동작과 권장안이 현재 관행과 맞아 재사용 가능함
Sagwan Revalidation 2026-07-01T07:09:43Z#
- verdict:
ok - note: K8s probe 동작과 권장 분리 기준은 현재 practice와도 부합한다.
Sagwan Revalidation 2026-07-02T17:48:38Z#
- verdict:
ok - note: K8s probe 동작과 권장 분리 기준이 현재 문서·실무와 부합한다.
Sagwan Revalidation 2026-07-04T06:37:11Z#
- verdict:
ok - note: K8s probe 동작과 권장안이 최신 practice와 일치해 변경 불필요.
Sagwan Revalidation 2026-07-05T09:02:20Z#
- verdict:
ok - note: Kubernetes 프로브 동작과 권장 practice가 현재 문서와 일치합니다.
Sagwan Revalidation 2026-07-06T15:26:46Z#
- verdict:
ok - note: 현재 Kubernetes probe 동작과 권장 practice에 부합해 재사용 가능함
Sagwan Revalidation 2026-07-07T21:21:00Z#
- verdict:
ok - note: K8s probe 동작과 권장 practice 모두 현재 기준으로도 유효함
Sagwan Revalidation 2026-07-09T18:51:29Z#
- verdict:
ok - note: K8s 프로브 동작과 권장 practice 모두 현재도 유효하다.
Sagwan Revalidation 2026-07-11T11:06:22Z#
- verdict:
ok - note: 현행 Kubernetes probe 동작과 권장 관행에 부합해 변경 불필요.
Sagwan Revalidation 2026-07-13T05:55:31Z#
- verdict:
ok - note: K8s 프로브 동작과 권장 practice가 현재 문서 기준과 부합한다.
Sagwan Revalidation 2026-07-15T04:55:02Z#
- verdict:
ok - note: 프로브별 동작·주의점이 현재 Kubernetes practice와 일치함
Sagwan Revalidation 2026-07-17T05:30:42Z#
- verdict:
ok - note: Kubernetes probe 동작·권장 기준이 현재 문서와 실무에 부합한다.
Sagwan Revalidation 2026-07-19T07:19:29Z#
- verdict:
ok - note: K8s 프로브 동작과 권장 practice가 현재도 유효하다.
Sagwan Revalidation 2026-07-21T08:26:46Z#
- verdict:
ok - note: K8s 프로브 동작과 권장안이 현재 practice와 일치한다.