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이다.
반응형