Kubernetes Probe 완벽 가이드! Liveness, Readiness, Startup Health Check 구조 이해하기

Kubernetes 환경에서 Application을 안정적으로 운영하려면 Container가 정상적으로 실행되고 있는지 지속적으로 확인해야 합니다.

Container Process가 실행 중이라고 해서 항상 정상적인 상태는 아닙니다.

예를 들어 Web Application이 실행되고 있지만 Database 연결 오류로 요청을 처리하지 못하거나, 내부 오류로 응답하지 않는 상황이 발생할 수 있습니다.

Kubernetes에서는 이러한 문제를 해결하기 위해 Probe 기능을 제공합니다.

Probe는 Container 상태를 주기적으로 확인하고 문제가 발생하면 자동으로 복구하거나 Traffic 전달을 조절하는 Health Check 기능입니다.

구성 요소역할
Liveness ProbeContainer 정상 실행 확인
Readiness ProbeTraffic 처리 가능 상태 확인
Startup Probe초기 실행 상태 확인
KubeletHealth Check 수행

Kubernetes Probe 구조를 이해하면 Application 장애를 자동 감지하고 안정적인 Service 운영 환경을 구축할 수 있습니다.

Kubernetes Probe란 무엇인가?

Probe는 Kubernetes가 Container 상태를 확인하기 위해 사용하는 검사 기능입니다.

Kubelet은 설정된 주기에 따라 Container를 검사하고 결과에 따라 필요한 작업을 수행합니다.

예:

Application 실행

Health Check 수행

정상 상태 확인

Traffic 제공

또는

Application 오류 발생

Probe 실패

Container 재시작 또는 Traffic 제거

이처럼 Kubernetes는 Container 상태를 자동으로 관리합니다.

Kubernetes Health Check가 필요한 이유

Container가 실행 중이어도 Application 내부 문제가 발생할 수 있습니다.

문제:

상황문제
Process 실행 중서비스 응답 불가
Memory 문제Application 멈춤
Database 연결 실패요청 처리 불가
초기 실행 지연잘못된 장애 판단

Probe는 이러한 상태를 구분하여 안정적인 운영을 지원합니다.

Kubernetes Probe 동작 구조

Probe는 Kubelet이 실행하며 Container 상태를 확인합니다.

구조:

구성 요소역할
KubeletProbe 실행
ContainerHealth Check 대상
Application상태 응답 제공
Controller필요한 조치 수행

동작 과정:

단계내용
1단계Kubelet Probe 실행
2단계Container 상태 확인
3단계결과 판단
4단계재시작 또는 Traffic 제어
5단계서비스 상태 유지

Kubernetes Liveness Probe란?

Liveness Probe는 Container가 정상적으로 살아있는지 확인하는 기능입니다.

비정상 상태가 지속되면 Kubernetes는 Container를 재시작합니다.

예:

Application Deadlock 발생

Liveness Probe 실패

Kubernetes Container 재시작

주요 목적:

상황처리
Process 멈춤재시작
응답 없음복구
Deadlock 발생Container 교체

자동 복구 기능의 핵심입니다.

Kubernetes Readiness Probe란?

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

Container는 실행 중이지만 요청 처리가 불가능한 상태라면 Service Endpoint에서 제외합니다.

예:

Application 시작 중

Readiness 실패

Traffic 전달 중단

Application 준비 완료

Endpoint 추가

Traffic 전달 시작

서비스 중단을 줄이는 중요한 기능입니다.

Kubernetes Startup Probe란?

Startup Probe는 Application 초기 실행 시간이 긴 경우 사용하는 Health Check입니다.

초기 실행이 오래 걸리는 Application에서 Liveness Probe가 너무 빠르게 실패하는 문제를 방지합니다.

예:

대규모 Java Application 실행

Startup Probe 검사

초기화 완료

Liveness Probe 시작

초기 Loading 시간이 긴 Application에 적합합니다.

Kubernetes Probe 검사 방식

Kubernetes는 여러 가지 Health Check 방식을 제공합니다.

방식설명
HTTP GETHTTP Endpoint 확인
TCP SocketPort 연결 확인
Exec CommandContainer 내부 명령 실행

Application 특성에 따라 선택합니다.

Kubernetes HTTP Probe 구조

HTTP Probe는 Application의 특정 URL을 호출하여 상태를 확인합니다.

구조:

Kubelet

HTTP Request

Application Health Endpoint

응답 확인

예:

/health

응답:

200 OK

정상 상태 판단

Web Application에서 가장 많이 사용하는 방식입니다.

Kubernetes TCP Probe 구조

TCP Probe는 특정 Port가 정상적으로 열려 있는지 확인합니다.

예:

Database Port:

3306

확인:

Port 연결 가능

정상

Application 수정 없이 Network 상태를 확인할 수 있습니다.

Kubernetes Exec Probe 구조

Exec Probe는 Container 내부에서 명령어를 실행하여 상태를 확인합니다.

예:

명령:

check-health.sh

결과:

Exit Code 0

정상

특수한 Application Health Check에서 활용됩니다.

Kubernetes Probe 주요 설정

Probe는 다양한 옵션으로 동작 방식을 조절할 수 있습니다.

설정설명
initialDelaySeconds첫 검사 대기 시간
periodSeconds검사 주기
timeoutSeconds응답 대기 시간
failureThreshold실패 판단 횟수
successThreshold성공 판단 횟수

Application 특성에 맞게 설정해야 합니다.

Kubernetes Liveness와 Readiness 차이

두 Probe는 목적이 다릅니다.

구분LivenessReadiness
목적Container 복구Traffic 제어
실패 결과Container 재시작Endpoint 제거
대상실행 상태서비스 가능 상태
사용 목적장애 복구서비스 안정화

Production 환경에서는 두 가지를 함께 사용하는 경우가 많습니다.

Kubernetes Probe와 Deployment 관계

Probe는 Deployment와 함께 사용되어 Application 안정성을 높입니다.

구조:

Deployment

Pod 생성

Probe 실행

상태 확인

자동 복구

Kubernetes는 Application 상태를 지속적으로 관리합니다.

Kubernetes Probe 활용 사례

Application추천 Probe
Web ServerHTTP Probe
DatabaseTCP Probe
Batch ApplicationExec Probe
대규모 ApplicationStartup Probe

Application 특성에 맞는 Health Check 설계가 중요합니다.

Kubernetes Probe 운영 시 고려사항

잘못된 Probe 설정은 정상 Application을 재시작시키는 문제가 발생할 수 있습니다.

항목설명
검사 주기과도한 요청 방지
초기 지연실행 시간 고려
Timeout응답 시간 반영
실패 기준서비스 특성 고려

Production 환경에서는 충분한 테스트가 필요합니다.

Kubernetes Probe 장애 상황

Probe 설정 오류는 Application 장애처럼 보일 수 있습니다.

예:

설정 오류

Probe 실패

Container 반복 재시작

서비스 영향

따라서 Monitoring과 함께 관리해야 합니다.

Kubernetes Probe 장점

장점설명
자동 복구비정상 Container 재시작
Traffic 보호준비되지 않은 Pod 차단
장애 감지빠른 문제 확인
운영 자동화수동 확인 감소

Probe는 Kubernetes Application 운영 안정성을 높이는 핵심 기능입니다.

자주 묻는 질문

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

Liveness는 Container가 정상 실행 중인지 확인하고 Readiness는 Traffic을 받을 준비가 되었는지 확인합니다.

Probe 실패하면 Container가 바로 종료되나요?

아닙니다.

설정된 failureThreshold 조건을 만족해야 재시작 또는 제외 작업이 수행됩니다.

모든 Application에 Probe가 필요한가요?

Production 환경에서는 안정적인 운영을 위해 대부분 적용하는 것이 권장됩니다.

마무리

Kubernetes Probe는 Container 상태를 확인하고 Application 안정성을 유지하는 핵심 Health Check 기능입니다.

구성 요소역할
Liveness Probe자동 복구
Readiness ProbeTraffic 관리
Startup Probe초기 실행 보호
KubeletHealth Check 실행

Probe 구조를 이해하면 Kubernetes 환경에서 Application 장애를 빠르게 감지하고 자동 복구하는 안정적인 운영 구조를 구축할 수 있습니다.

다음 글에서는 Kubernetes Application 배치와 업데이트 전략을 위한 Kubernetes Deployment 완벽 가이드! Replica 관리와 Rolling Update 구조 이해하기를 알아보겠습니다.

댓글 남기기