개요
- 파드 내부 컨테이너에서 실행 중인 프로세스가 동작하고 있는지에 대한 헬스 체크는 쿠버네티스가 표준으로 하고 있다.
- 컨테이너가 이상 종료된 경우 파드에 설정된
spec.restartPolicy
에 따라 파드를 재시작한다.
- 헬스체크에는 3가지 방법이 있다.
- 모두 역할이 다를뿐 설정 가능한 내용은 똑같으며
spec.containers
에 설정한다.
Liveness Probe
: 파드 내부의 컨테이너가 정상 동작 중인지 확인, 실패 시 컨테이너 재기동
Readiness Probe
: 파드가 요청을 받아들일 수 있는지 확인, 실패 시 트래픽 차단(파드를 재기동 하지 않음)
Startup Probe
: 파드의 첫 번째 기동이 완료되었는지 확인, 실패 시 다른 Probe 실행을 시작하지 않음
Liveness Probe
Liveness Probe
는 파드 내부의 컨테이너가 정상적으로 동작 중인지 확인하기 위한 헬스 체크다.
- 한 번 실패하면 재시작 없이는 복구가 어려운 컨테이너에 사용한다.
Readiness Probe
- 파드가 요청을 받아들일 수 있는지 확인하기 위한 헬스 체크
- 백엔드 데이터베이스에 정상적으로 접속되는지, 캐시에 로드가 끝났는지, 기동 시간이 오래 걸리는 프로세스가 기동을 완료했는지 등을 체크한다.
- 파드 기동이 끝난 후
Readiness Probe
가 실패한 경우 서비스를 통한 트래픽이 파드에 전송되지 않게 한다.
Liveness Probe
와 달리 컨테이너를 재기동하지 않는다.
- 정상적으로 요청을 처리하는 수를 제어하기 위해
Readiness Probe
를 실패시키는 방법을 사용할 수 있다.
Startup Probe
- 파드가 처음 기동이 완료되었는지 확인하기 위한 헬스 체크다.
Startup Probe
가 끝날 때까지 Liveness Probe
나 Readiness Probe
가 시작되지 않으며, 해당 파드가 서비스되거나 정지되지 않는다.
헬스체크 방식
Liveness Probe
, Readiness Probe
, Startup Probe
모두 세 자기 헬스 체크 방식을 사용할 수 있다.
exec
- 명령어를 실행하고 종료 코드가 0이 아니면 실패로 판단한다.