컨테이너가 실행된 후에는 kubelet가 컨테이너를 주기적으로 진단한다. 이 때 필요한 프로브는 다음 두 가지가 있다.
livenessProbe : 컨테이너가 실행되었는지 확인한다. 이 진단이 실패하면 kubelet은 컨테이너를 종료시키고, 재시작 정책에 따라서 컨테이너를 재시작한다. 컨테이너에 liveness Probe를 어떻게 할 지 명시되지 않았다면 기본 상태 값은 Success 이다.
readinessProbe : 컨테이너가 실행된 후 실제로 서비스 요청에 응답할 수 있는지 진단한다. 이 진단이 실패하면 엔드포인트 컨트롤러는 해당 파드에 연결된 모드 서비스를 대상으로 엔드포인트 정보를 제거한다. 첫 번째 readinessProbe를 하기 전까지의 기본 상태 값은 Failure이다. readinessProbe를 지원하지 않는 컨테이너라면 기본 상태 값은 Success이다.
컨테이너 진단은 컨테이너가 구현한 핸들러를 kubelet이 호출해서 실행한다. 핸들러에는 세 가지가 있다.
ExecAction : 컨테이너 안에서 지정된 명령을 실행하고 종료 코드가 0일때 Success라고 진단한다.
TCPSocketAction : 컨테이너 안에 지정된 IP와 포트로 TCP 상태를 확인하고 포트가 열려 있으면 Success라고 진단한다.
HttpGetAction : 컨테이너 안에 지정된 IP, 포트, 경로로 HTTP Get 요청을 보낸다. 응답 상태 코드가 200에서 400 사이면 Success라고 진단한다.
컨테이너 진단하기
컨테이너가 실행된 후에는 kubelet가 컨테이너를 주기적으로 진단한다. 이 때 필요한 프로브는 다음 두 가지가 있다.
컨테이너 진단은 컨테이너가 구현한 핸들러를 kubelet이 호출해서 실행한다. 핸들러에는 세 가지가 있다.
진단 결과도 세 가지가 있다.
참고