해결된 질문
작성
·
156
0
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다.
다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다!
[질문 하기]
안녕하세요 강사님! 양질의 강의 정말 잘 듣고 있습니다!
바로 본론으로 넘어가 livenessProbe 관련하여 질문이 있습니다.
[질문]
initialDelaySeconds
와 periodSeconds
가 함께 있으면 initialDelaySeconds
시간이 지나고, periodSeconds
시간이 추가적으로 지나고 난 뒤 첫번째 Liveness Probe가 실행되는 것이 맞을까요?
제가 실제로 해당 코드에서 initialDelaySeconds: 10
를 주석 처리하지 않는 경우 첫번째 검사까지 20초가 걸렸고,
만약 initialDelaySeconds: 10
를 주석처리하는 경우 첫번째 검사까지 10초가 걸렸습니다.
이에 여러 래퍼런스를 찾아보니 initialDelaySeconds가 끝나는 즉시 첫번째 probe가 수행되어야 한다고 하는데 왜 첫번째 실패까지 20초가 걸리는지 의문이 들어 질문 남깁니다.
감사합니다! 😀😀
답변 1
0
안녕하세요
제가 볼 때는 테스트 결과도 맞고...
initialDelaySeconds 가 최초 동작 하고 그 이후에 periodSeconds 가 동작하는 것이 맞는 것 같은데요
만약에 initialDelaySeconds 가 overwrite하게 된다면 개별적으로 기능을 해야 하는 철학에도 안 맞고 그걸 코드로 구현하고 메인터넌스 하기도 오히려 번거로워서요.
혹시 어떤걸 레퍼런스 하셨는지 문의드려도 될까요?
네 그게 맞습니다.
initContainer 와 유사하다고 생각하시면 될꺼 같아요.
검사라기 보다 Probe를 수행하는 시점이 init 10초 그리고 나서 10초 후
그래서 총합이 20초가 된다고 생각하시면 될꺼 같아요.
뒤에 과정에 보면 또는 이미 들으셨을꺼 같은데...
init이 어떤 때 필요한지 (파드가 올라오는 시간이 오래걸릴 때 등) 설명도 포함되어 있습니다.
기존에 답변 드린 이 내용을 함께 보시면 아마 이해에 도움이 되실꺼 같아요.
그리고 공홈에 나온 First Probe가 시작되기 전에 wait한다는 것은
그 무엇보다 우선한다는 의미로 initContainer와도 유사합니다.
그리고 First Probe가 시작한다는것은 타이머(현재 10초)가 시작된다는 의미이지 바로 Probe가 시작된다는 의미는 아니라서요
아마 그 부분이 혼동스러우셨던거 같아요.
공식문서를 포함하여 initialDelaySeconds 이후 probe가 수행된다고 나와있었습니다.
https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
제 테스트 결과를 보면 initialDelaySeconds가 10초임에도 불구하고 첫 번째 probe 동작(unhealty로 변하는 첫 번째 시점)은 10초가 아닌 "20초"에 실행되고 있습니다.
이러한 10초가 아닌 "20초" 나온 결과가 맞다면 그 기전이 initialDelaySeconds(10초) + periodSeconds(10초)를 합쳐서 나온 20초 뒤 첫번째 실행인지 궁금합니다.