AI Briefing

Kubernetes Pod 진단을 담당하는 서비스: probe

·2020.06.22 11:27

probe로 liveness, readiness, startup 상태를 점검해 Rolling Update 다운타임을 줄인다.

Kubernetes의 probe는 kubelet이 컨테이너를 주기적으로 진단하는 기능이다. 진단 방식은 ExecAction, TCPSocketAction, HTTPGetAction 세 가지이며, 결과는 Success, Failure, Unknown으로 나뉜다.

probe는 목적에 따라 세 종류로 사용된다.

  • livenessProbe: 컨테이너가 살아 있는지 확인한다. 실패하면 kubelet이 컨테이너를 죽이고 재시작 정책에 따라 다시 기동한다.
  • readinessProbe: 컨테이너가 요청을 받을 준비가 되었는지 확인한다. 실패하면 서비스 엔드포인트에서 해당 Pod IP가 제거되어 트래픽이 가지 않는다.
  • startupProbe: 애플리케이션의 초기 기동 완료 여부를 확인한다. 성공하기 전까지 다른 probe는 동작하지 않아, 느리게 뜨는 애플리케이션의 데드락을 줄인다.

특히 Rolling Update 상황에서 readinessProbe의 역할이 중요하다. 새 Pod 내부 프로세스가 아직 완전히 올라오지 않았는데 기존 Pod를 먼저 내리면, 요청을 받을 대상이 없어 504 Bad Gateway 같은 다운타임이 발생할 수 있다.

예제에서는 Pod 내부 서버가 뜨는 데 약 30초 걸리는 상황을 가정한다. 이때 readinessProbe를 추가하면 initialDelaySeconds 이후 periodSeconds 주기로 httpGet 건강 상태를 확인하고, HTTP 200이 돌아올 때만 트래픽을 받게 된다.

응답이 400 또는 500이면 해당 Pod는 비정상으로 간주되어 라우팅 대상에서 제외된다. 즉 readinessProbe는 Pod 안에서 실제로 요청을 처리할 수 있는지 판단하는 핵심 장치다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.