Kubernetes Health Check 완벽 가이드! Liveness·Readiness·Startup Probe와 서비스 안정성 구조 이해하기

Kubernetes 환경에서 Application을 안정적으로 운영하려면 단순히 Container가 실행되고 있는 것만으로는 충분하지 않습니다.

Container는 실행 중이지만 실제 서비스가 정상적으로 동작하지 않는 상황이 발생할 수 있습니다.

예:

Container 실행

Application 내부 오류 발생

Process는 살아있음

사용자 요청 실패

이 문제를 해결하기 위해 Kubernetes는 Health Check 기능을 제공합니다.

Kubernetes Probe는 Application 상태를 지속적으로 확인하고 문제가 발생하면 자동으로 조치합니다.

구성 요소역할
Liveness ProbeContainer 재시작 판단
Readiness ProbeTraffic 전달 여부 판단
Startup Probe초기 실행 상태 확인
kubeletHealth Check 실행
Service정상 Pod 연결

Health Check 구조를 이해하면 Kubernetes에서 Self-Healing Application 운영이 가능합니다.

Kubernetes Health Check란?

Health Check는 Kubernetes가 Application 상태를 확인하는 기능입니다.

기본 Container 상태:

Running

정상 판단

하지만 실제:

Process 실행

Application 내부 오류

서비스 불가능

상태가 발생할 수 있습니다.

Probe를 통해 실제 서비스 상태를 확인합니다.

Kubernetes Probe 종류

Kubernetes는 세 가지 Probe를 제공합니다.

Probe목적
Liveness Probe살아있는지 확인
Readiness ProbeTraffic 처리 가능 여부 확인
Startup Probe초기 시작 완료 확인

각각 다른 목적을 가지고 있습니다.

Kubernetes Liveness Probe

Liveness Probe는 Container가 정상적으로 살아있는지 확인합니다.

예:

Application Deadlock 발생

응답 없음

Liveness Probe 실패

Container 재시작

자동 복구 기능입니다.

Kubernetes Readiness Probe

Readiness Probe는 Traffic을 받을 준비가 되었는지 확인합니다.

예:

Application 시작 중

Database 연결 대기

Ready 상태 아님

Service Traffic 차단

준비가 완료되면 Traffic을 전달합니다.

Kubernetes Startup Probe

Startup Probe는 시작 시간이 오래 걸리는 Application을 위한 기능입니다.

예:

Java Application

10분 초기화 필요

Liveness Probe 실행

잘못된 재시작 발생 가능

Startup Probe를 사용하면 초기 실행 시간을 보호할 수 있습니다.

Kubernetes Probe 동작 구조

전체 흐름:

kubelet

↓

Probe 실행

↓

Application 확인

↓

상태 판단

↓

Restart 또는 Traffic 제어

Worker Node의 kubelet이 직접 확인합니다.

Kubernetes Probe 방식

Health Check 방법:

방식설명
HTTP ProbeHTTP 응답 확인
TCP ProbePort 연결 확인
Exec ProbeCommand 실행 확인

Application 특성에 맞게 선택합니다.

Kubernetes HTTP Probe 예시

livenessProbe:
  httpGet:
    path: /health
    port: 8080
  initialDelaySeconds: 10
  periodSeconds: 5

HTTP Endpoint를 통해 상태를 확인합니다.

Kubernetes Readiness Probe 설정 예시

readinessProbe:
  httpGet:
    path: /ready
    port: 8080
  initialDelaySeconds: 5
  periodSeconds: 10

Ready 상태가 아니면 Service Endpoint에서 제외됩니다.

Kubernetes Probe 실패 처리

Liveness 실패:

Container Restart

Readiness 실패:

Traffic 제거

Startup 실패:

Container Restart

Probe 종류에 따라 처리 방식이 다릅니다.

Kubernetes Probe와 Service 관계

중요한 차이입니다.

Readiness Probe 실패:

Pod 실행 유지

Service Endpoint 제거

Liveness Probe 실패:

Pod 재시작

서비스 안정성을 위해 역할이 분리됩니다.

Kubernetes Health Check 장애 사례

잘못된 Probe 설정

예:

Application 시작 시간:

120초

Probe 시작:

10초

결과:

정상 Application 종료

Startup Probe가 필요합니다.

잘못된 Endpoint 설정

Probe:

/health

실제:

/status

결과:

Health Check 실패

Application Endpoint 확인이 필요합니다.

Kubernetes Probe Timeout 관리

설정 항목:

  • initialDelaySeconds
  • periodSeconds
  • timeoutSeconds
  • failureThreshold
  • successThreshold

잘못 설정하면 불필요한 Restart가 발생합니다.

Kubernetes Health Check와 Self Healing

Kubernetes 핵심 기능:

문제 감지

상태 판단

자동 조치

정상 상태 복구

Self-Healing Architecture의 기본입니다.

Kubernetes Probe 운영 전략

Production 환경:

1단계

Health Endpoint 개발

2단계

Readiness 적용

3단계

Liveness 적용

4단계

Startup 적용

5단계

Monitoring 연결

점진적으로 적용하는 것이 안정적입니다.

Kubernetes Health Check Monitoring

확인 항목:

  • Probe 실패 횟수
  • Container Restart Count
  • Pod Ready 상태
  • Application Error

운영 환경에서 반드시 확인해야 합니다.

Kubernetes Health Check와 장애 분석

확인 명령어:

Pod 상태:

kubectl get pods

상세 확인:

kubectl describe pod pod-name

Restart 확인:

kubectl get pod pod-name

Event를 통해 원인을 분석합니다.

Kubernetes Health Check 장점

장점설명
자동 복구장애 Container 재시작
Traffic 보호비정상 Pod 제외
서비스 안정성장애 확산 방지
운영 자동화수동 대응 감소

Health Check는 Kubernetes 운영의 핵심 기능입니다.

자주 묻는 질문

Liveness와 Readiness 차이는 무엇인가요?

Liveness는 Container 재시작 판단, Readiness는 Traffic 전달 여부 판단입니다.

Probe가 실패하면 Pod가 삭제되나요?

Liveness 실패 시 Container가 재시작되고 Readiness 실패 시 Traffic만 제거됩니다.

모든 Application에 Health Check가 필요한가요?

Production 환경에서는 대부분 적용하는 것이 좋습니다.

마무리

Kubernetes Health Check는 Application 상태를 자동으로 확인하고 장애 상황에서 안정적으로 대응하는 핵심 기능입니다.

구성 요소역할
Liveness ProbeContainer 재시작
Readiness ProbeTraffic 제어
Startup Probe초기 실행 보호
kubelet상태 검사

Health Check 구조를 이해하면 Kubernetes의 Self-Healing과 안정적인 Production 운영 환경을 구축할 수 있습니다.

다음 글에서는 Kubernetes 장애 분석 영역인 Kubernetes Troubleshooting 완벽 가이드! Pod 오류 원인 분석과 장애 해결 방법 이해하기를 진행하겠습니다.

댓글 남기기