귀염둥이의 메모

[K8s] 컨테이너 프로브(Probe), 컨테이너 진단 본문

Infra & Devops/Kubernetes

[K8s] 컨테이너 프로브(Probe), 컨테이너 진단

겸둥이xz 2021. 10. 5. 17:25
반응형

프로브(Probe)

프로브는 컨테이너에서 kubelet에 의해 주기적으로 수행되는 진단이다. 진단을 수행하기 위해서, kubelet은 컨테이너에 의해서 구현된 핸들러를 호출한다.
  • ExecAction : 컨테이너 안에 지정된 명령을 실행하고 종료 코드가 0일 때 Success라고 진단
  • TCPSocketAction : 컨테이너 안에 지정된 IP와 포트로 TCP 상태를 확인하고 포트가 열려있으면 Success라고 진단
  • HTTPGetAction : 컨테이너 안에 지정된 IP, 포트, 경로로 HTTP GET 요청하고 응답 코드가 200 ~ 400 이면 Success라고 진단

진단 결과

  • Success : 진단에 성공
  • Failure : 진단에 실패
  • Unknown : 진단 자체가 실패해서 컨테이너 상태를 알 수 없음

세 가지 종류의 프로브

  • livenessProbe : 컨테이너가 실행됐는지 확인한다. 이 진단이 실패하면 kubelet은 컨테이너를 종료시키고, 재시작 정책에 따라서 컨테이너를 재시작한다. 컨테이너에 livenessProbe를 어떻게 할지 명시되지 않았다면 기본 상태 값은 Success이다.
  • readinessProbe : 컨테이너가 실행된 후 실제로 서비스 요청에 응답할 준비가 되었는지 여부를 나타낸다. 프로브가 실패하면, 엔드포인트 컨트롤러는 해당 파드에 연결된 모든 서비스를 대상으로 엔드포인트 정보를 제거한다. 첫 번째 프로브 전까지의 기본 상태 값은 Failure이다. 컨테이너가 readinessProbe를 지원하지 않으면 기본 상태 값은 Success이다.
  • startupProbe : 컨테이너 안 애플리케이션이 시작되었는지 나타낸다. 프로브 진단이 성공할 때까지 다른 나머지 프로브들은 활성화되지 않으며, 진단이 실패하면 kubelet이 컨테이너를 종료시키고, 컨테이너를 재시작 정책에 따라 처리한다. 컨테이너에 startupProbe가 없으면 기본 상태 값은 Success이다.

 

반응형
Comments