개요
- 파드 내부 컨테이너에서 실행 중인 프로세스가 동작하고 있는지에 대한 헬스 체크는 쿠버네티스가 표준으로 하고 있다.
- 컨테이너가 이상 종료된 경우 파드에 설정된
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이 아니면 실패로 판단한다.