인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

odark님의 프로필 이미지

작성한 질문수

쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2

📝 Application 동작 중심의 프로브 이해

Probe에 대한 이해

작성

·

47

1

중요하다고 생각해서 여러번 보는데도 api입장에서는 이해가 잘 안되네요..제가 생각한 결론은 liveniessProbe는 pod재기동을 위한 api 상태체크같고 readinessProbe는 service에 pod를 연결시킬거냐 말거냐를 결정하는거 같은데...

이걸 호출하는 api 를 봤을땐 liveness와 readiness의 api를 실무에서 어떻게 각각 구별해서 만들수가 있을까 싶은거에요...

또한 app초기화 user초기화로 구분했던것도 실은 서버가 올라옴과 동시에 거의 강사님이 말씀하신 app초기화와 user초기화는 거의 순식간에 끝나는거 아닌지요? 막말로 톰캣서버올라오는 순간 모든 api들은 정상호출되는거 아닌지요..그리고 그렇게 user초기화를 위한 과정이 서버 기동시 그렇게 오래 올라올까 싶기도 하고..만약 실제로 그렇다면 굳이 startupProbe가 왜 필요할까 싶기도 해요...어차피 startupProbe가 성공하던 말던 중요한건 readiness에서 서비스연결할지 여부를 결정할거고 liveness에서 재기동까지 결정할텐데..굳이 startupProbe까지 넣을필요있는지.....설명은 이해가 되지만 실제로 의미가 있을까 하는 생각뿐이에요..

답변 2

0

일프로님의 프로필 이미지
일프로
지식공유자

Probe는 실무 App 로직별로 차이가 큽니다. 가벼운 시스템의 경우 Readiness와 Liveness의 차이를 나눌 필요는 없고 api를 호출해도 무관합니다. 하지만 app이 무거워 질 수록, 그리고 pod를 운영해볼 수록 각각의 api에 담는 내용이 필요에 따라 달라지게 될거예요. 그렇기 때문에 처음부터 복잡하게 생각해서 나눌 필요는 없고, 알단은 두 Probe의 차이점만 알고 있으면 됩니다.

그리고 App이 순식간에 기동되지는 않습니다. 스프링으로 개발하게 되면 최소 20초에서 5분이 넘어가는 경우도 허다하거든요.

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. odark님.

두 프로브의 기능에 대해 혼란스러우시죠? Kubernetes에서 사용되는 livenessProbe와 readinessProbe, 그리고 startupProbe의 목적과 활용에 대해 명확히 이해하는 것이 중요합니다.

  1. LivenessProbe: 이 프로브는 컨테이너가 정상적으로 작동하는지를 확인합니다. API 호출 실패가 반복되면, Kubernetes는 해당 컨테이너를 재시작합니다. 이는 컨테이너가 비정상적인 상태로 영구적으로 머무르는 것을 방지하는 역할을 합니다.

  2. ReadinessProbe: 이 프로브는 애플리케이션이 외부 트래픽을 받을 준비가 되었는지 결정합니다. Kubernetes는 readiness 프로브가 실패한 경우 그 포드를 서비스 목록에서 제외시켜 트래픽을 받지 않도록 보장합니다. 따라서 애플리케이션이 트래픽 처리를 시작하기 전에 필요한 초기화를 완료할 시간은 readinessProbe를 사용해 대처할 수 있습니다.

  3. StartupProbe: 애플리케이션이 시작하는 데 시간이 오래 걸리는 경우, startupProbe를 설정하여 애플리케이션이 완전히 시작되기 전까지 liveness와 readiness 프로브가 작동하지 않도록 할 수 있습니다. 이는 애플리케이션 초기화 시에 발생할 수 있는 잘못된 liveness와 readiness 판정으로 인한 불필요한 재시작을 방지합니다.

실무에서는 애플리케이션의 특성에 따라 이들 세 프로브를 조정합니다. Tomcat과 같은 경우에는 서버가 올라오는 과정이 짧지만, 복잡한 초기화 과정을 가진 대형 어플리케이션의 경우 startupProbe가 유용할 수 있습니다. 이러한 프로브 설정은 초기에 비용이 들어갈 수 있지만, 장기적으로 애플리케이션의 안정성과 가용성을 높이는 데 기여합니다.

관련된 유사한 질문을 다룬 게시물을 소개합니다:
- readinessProbe와 startupProbe의 차이점
- liveness,readiness차이

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

odark님의 프로필 이미지

작성한 질문수

질문하기