활성(Liveness), 준비성(Readiness) 그리고 시작(Startup) 프로브
쿠버네티스에서는 다음과 같은 종류의 프로브(probe)를 제공한다.
활성 프로브
활성 프로브는 컨테이너를 재시작할 시점을 결정한다. 예를 들어, 애플리케이션이 동작 중이지만 진행이 되지 않는 교착 상태(deadlock) 상태에 빠진 경우, 활성 프로브가 이를 감지할 수 있다.
컨테이너가 활성 프로브에 반복적으로 실패하면, kubelet은 해당 컨테이너를 재시작한다.
활성 프로브는 준비성 프로브가 성공할 때까지 기다리지 않는다. 활성 프로브 실행 전에 대기 시간이 필요하다면 initialDelaySeconds 값을 설정하거나
시작 프로브를 사용할 수 있다.
준비성 프로브
준비성 프로브는 컨테이너가 트래픽을 받을 준비가 되었는지를 판별한다. 예를 들어, 네트워크 연결 설정, 파일 로딩, 캐시 워밍 등 백엔드 서비스에 의존하는 시간 소요 작업을 수행하는 동안 유용하다. 또한 일시적인 오류나 과부하에서 복구하는 등의 컨테이너 라이프사이클 후반에도 활용된다.
준비성 프로브가 실패 상태를 반환하면, 쿠버네티스는 해당 파드를 모든 일치하는 서비스 엔드포인트에서 제외한다.
준비성 프로브는 컨테이너의 전체 라이프사이클 동안 실행된다.
시작 프로브
시작 프로브는 컨테이너 내 애플리케이션이 시작되었는지 확인한다. 이를 사용하여 시작이 느린 컨테이너에서 활성 프로브를 채택할 수 있으며, kubelet이 컨테이너를 시작 및 실행하기 전에 종료하는 것을 방지한다.
시작 프로브가 설정된 경우, 성공할 때까지 활성 및 준비성 프로브는 비활성화된다.
시작 프로브는 활성 및 준비성 프로브와 달리 시작 시점에만 실행된다.
- 자세한 내용은 활성, 준비성, 시작 프로브 구성을 참고한다.