What’s Kubernetes Probe
Probe |
설명 |
livenessProbe | livenessProbe를 통과하지 못하면, kubelet은 container를 종료하고, 해당 container는 재시작 정책의 대상이 됩니다. |
readinessProbe | readinessProbe를 통과하지 못하면, endpoint controller는 pod와 연관된 모든 서비스의 endpoint에서 pod의 IP 주소를 제거합니다. |
startupProbe | startupProbe가 시작되면 startupProbe를 통과하기 전까지 다른 Probe는 활성화되지 않습니다. 만약 startupProbe를 통과하지 못하면 kubelet은 container를 종료하고 해당 container는 재시작 정책의 대상이 됩니다. |
Pod Lifecycle
- https://loft.sh/blog/kubernetes-probes-startup-liveness-readiness/
- https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
- https://kubernetes.io/ko/docs/concepts/workloads/pods/pod-lifecycle/
- startupProbe에서 container상태를 확인하고, livenessProbe와 readinessProbe에서 container상태를 최종 확인하며 pod상태 결정
- 위 과정이 완료되기 전까지 network traffic을 차단
- 정상적으로 pod구동 된 이후,
- livenessProbe : 상태를 check 하고, pod을 재시작 할지 확인
- readinessProbe : pod에 traffic을 보낼지 결정
HowTo
Spring Framework
- https://www.baeldung.com/spring-liveness-readiness-probes
- Spring Actuator
- Liveness : /actuator/health/liveness
- Readiness : /actuator/health/readiness
- custom status
- https://www.baeldung.com/spring-liveness-readiness-probes#1-updating-the-availability-state
- AvailabilityChangeEvent 를 통해, 각 probe의 상태를 변경 할 수 있다
- 서비스의 특정한 상황에 따른 상태변경 요청이 가능하다.
반응형
'emotional developer > detect-Web' 카테고리의 다른 글
slack webhook URL test (0) | 2023.08.19 |
---|---|
Synchronous, Asynchronous, Blocking, Non-Blocking (0) | 2023.07.04 |
API Design Practice (0) | 2023.05.15 |