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

Kubernetes 환경에서 Application을 안정적으로 운영하기 위해서는 Container 상태를 지속적으로 확인하는 기능이 필요합니다.

Container가 실행 중이라고 해서 항상 정상적인 서비스 상태를 의미하는 것은 아닙니다.

예를 들어 Application 내부 오류가 발생했거나 Database 연결 문제가 발생하면 Container는 실행 중이지만 실제 서비스는 정상적으로 동작하지 않을 수 있습니다.

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

구성 요소역할
Liveness ProbeContainer 정상 동작 여부 확인
Readiness Probe서비스 요청 처리 가능 여부 확인
Startup ProbeApplication 초기 실행 상태 확인
KubeletHealth Check 수행

Health Check 기능을 활용하면 Kubernetes가 비정상적인 Container를 자동으로 복구하고 안정적인 서비스를 유지할 수 있습니다.

Kubernetes Probe란 무엇인가?

Probe는 Kubernetes가 Container 상태를 확인하기 위한 Health Check 기능입니다.

Kubernetes의 Kubelet은 주기적으로 Probe를 실행하여 Container 상태를 확인합니다.

상태 확인 결과에 따라 Kubernetes는 자동으로 필요한 작업을 수행합니다.

상태동작
정상 상태서비스 유지
비정상 상태재시작 또는 Traffic 제거
준비되지 않음요청 전달 중지

Probe는 Production 환경에서 장애 대응과 서비스 안정성을 높이는 중요한 기능입니다.

Kubernetes Liveness Probe란?

Liveness Probe는 Container가 정상적으로 실행되고 있는지 확인하는 기능입니다.

Application이 멈추거나 응답하지 않는 상태가 되면 Kubernetes는 해당 Container를 재시작합니다.

예:

상황동작
Application 정상 실행서비스 유지
Application Deadlock 발생Container 재시작
Process 오류 발생자동 복구

Liveness Probe는 Application 자체의 장애를 감지하는 역할을 합니다.

Kubernetes Readiness Probe란?

Readiness Probe는 Container가 사용자 요청을 받을 준비가 되었는지 확인하는 기능입니다.

Container가 실행 중이어도 초기 설정이나 Database 연결이 완료되지 않았다면 Traffic을 받으면 안 됩니다.

예:

상황동작
Application 준비 완료Traffic 전달
Database 연결 실패Traffic 차단
초기 실행 중요청 대기

Readiness Probe는 서비스 품질을 유지하기 위한 중요한 기능입니다.

Kubernetes Startup Probe란?

Startup Probe는 Application 시작 시간이 오래 걸리는 환경에서 사용하는 Health Check 기능입니다.

대규모 Application이나 초기 데이터 로딩이 필요한 서비스에서는 시작 시간이 길어질 수 있습니다.

Startup Probe가 필요한 이유:

문제해결
초기 실행 지연충분한 시작 시간 제공
잘못된 재시작 방지Liveness 검사 지연
대형 Application 지원안정적인 실행 가능

Startup Probe가 성공하면 이후 Liveness와 Readiness Probe가 정상적으로 동작합니다.

Kubernetes Probe 동작 구조

Probe는 Kubelet이 주기적으로 실행합니다.

구조:

구성 요소역할
KubeletProbe 실행
Probe 설정Health Check 기준
Container상태 확인 대상
Kubernetes Controller복구 처리

동작 과정:

단계내용
1단계Kubelet이 Container 확인
2단계Probe 실행
3단계상태 결과 확인
4단계필요한 조치 수행

이 구조를 통해 Kubernetes는 Application 상태를 자동으로 관리합니다.

Kubernetes Probe 검사 방식

Kubernetes는 여러 방식으로 Container 상태를 확인할 수 있습니다.

방식설명
HTTP ProbeHTTP 응답 확인
TCP ProbePort 연결 확인
Command Probe명령어 실행 결과 확인

사용 환경에 따라 적절한 검사 방식을 선택합니다.

예:

Application추천 방식
Web ServerHTTP Probe
DatabaseTCP Probe
Custom ApplicationCommand Probe

Kubernetes HTTP Probe 구성

HTTP Probe는 Web Application Health Check에서 가장 많이 사용됩니다.

확인 항목:

항목설명
EndpointHealth Check URL
Port서비스 Port
Status Code응답 상태 확인

예:

응답결과
HTTP 200정상
HTTP 오류비정상

Web Application에서는 일반적으로 /health 같은 Health Check Endpoint를 제공합니다.

Kubernetes Probe 설정 주요 항목

Probe 설정에는 다양한 옵션이 있습니다.

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

적절한 값을 설정해야 불필요한 Container 재시작을 방지할 수 있습니다.

Kubernetes Liveness와 Readiness 차이

두 기능은 비슷해 보이지만 목적이 다릅니다.

구분Liveness ProbeReadiness Probe
목적Container 정상 여부 확인Traffic 처리 가능 여부 확인
문제 발생 시Container 재시작Traffic 제거
대상Application 상태서비스 준비 상태

Liveness는 “살아있는가”를 확인하고 Readiness는 “서비스 가능한 상태인가”를 확인합니다.

Kubernetes Health Check 운영 시 고려사항

Production 환경에서는 Probe 설정을 신중하게 구성해야 합니다.

항목설명
검사 주기너무 짧으면 불필요한 부하 발생
Timeout 설정응답 시간 고려 필요
초기 지연Application 시작 시간 반영
장애 기준서비스 특성에 맞게 설정

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

Kubernetes Health Check 장점

장점설명
자동 복구비정상 Container 재시작
서비스 안정성장애 Traffic 차단
운영 자동화수동 확인 감소
가용성 향상서비스 유지 가능

Health Check는 Kubernetes 운영 환경에서 필수적인 안정성 기능입니다.

자주 묻는 질문

Liveness Probe와 Readiness Probe를 둘 다 사용해야 하나요?

Production 환경에서는 대부분 두 기능을 함께 사용하여 Container 상태와 서비스 가능 상태를 각각 관리합니다.

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

Liveness Probe 실패 시 Kubernetes는 Container를 재시작합니다.

Readiness Probe 실패 시에는 Traffic 전달만 중단됩니다.

Health Check 설정이 중요한 이유는 무엇인가요?

장애 상황을 빠르게 감지하고 자동 복구하여 서비스 안정성을 유지하기 위해 필요합니다.

마무리

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

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

Probe 기능을 활용하면 Kubernetes 환경에서 Application 장애를 자동으로 감지하고 안정적인 서비스를 운영할 수 있습니다.

다음 글에서는 Kubernetes 작업 자동화와 Batch 처리를 위한 Kubernetes Job과 CronJob 완벽 가이드! 일회성 작업과 예약 실행 구조 이해하기를 알아보겠습니다.

댓글 남기기