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

cloud님의 프로필 이미지

작성한 질문수

그림으로 배우는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}

1.6.kubeadm을 통한 쿠버네티스 설치(WO_master_node.sh, WO_work_nodes.sh)

livenessProbe 관련하여 질문이 있습니다.

해결된 질문

작성

·

156

0

질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다.
다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다!

[질문 하기]

안녕하세요 강사님! 양질의 강의 정말 잘 듣고 있습니다!
바로 본론으로 넘어가 livenessProbe 관련하여 질문이 있습니다.

[질문]

initialDelaySecondsperiodSeconds가 함께 있으면 initialDelaySeconds시간이 지나고, periodSeconds 시간이 추가적으로 지나고 난 뒤 첫번째 Liveness Probe가 실행되는 것이 맞을까요?

 

제가 실제로 해당 코드에서 initialDelaySeconds: 10를 주석 처리하지 않는 경우 첫번째 검사까지 20초가 걸렸고,

만약 initialDelaySeconds: 10를 주석처리하는 경우 첫번째 검사까지 10초가 걸렸습니다.

이에 여러 래퍼런스를 찾아보니 initialDelaySeconds가 끝나는 즉시 첫번째 probe가 수행되어야 한다고 하는데 왜 첫번째 실패까지 20초가 걸리는지 의문이 들어 질문 남깁니다.

 

감사합니다! 😀😀

 

답변 1

0

조훈(Hoon Jo)님의 프로필 이미지
조훈(Hoon Jo)
지식공유자

안녕하세요

제가 볼 때는 테스트 결과도 맞고...

initialDelaySeconds 가 최초 동작 하고 그 이후에 periodSeconds 가 동작하는 것이 맞는 것 같은데요

만약에 initialDelaySeconds 가 overwrite하게 된다면 개별적으로 기능을 해야 하는 철학에도 안 맞고 그걸 코드로 구현하고 메인터넌스 하기도 오히려 번거로워서요.

혹시 어떤걸 레퍼런스 하셨는지 문의드려도 될까요?

 

cloud님의 프로필 이미지
cloud
질문자

공식문서를 포함하여 initialDelaySeconds 이후 probe가 수행된다고 나와있었습니다.

https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/

 

image

제 테스트 결과를 보면 initialDelaySeconds 10초임에도 불구하고 첫 번째 probe 동작(unhealty로 변하는 첫 번째 시점)은 10초가 아닌 "20초"에 실행되고 있습니다.

image

이러한 10초가 아닌 "20초" 나온 결과가 맞다면 그 기전이 initialDelaySeconds(10초) + periodSeconds(10초)를 합쳐서 나온 20초 뒤 첫번째 실행인지 궁금합니다.

조훈(Hoon Jo)님의 프로필 이미지
조훈(Hoon Jo)
지식공유자

네 그게 맞습니다.

initContainer 와 유사하다고 생각하시면 될꺼 같아요.

검사라기 보다 Probe를 수행하는 시점이 init 10초 그리고 나서 10초 후

그래서 총합이 20초가 된다고 생각하시면 될꺼 같아요.

뒤에 과정에 보면 또는 이미 들으셨을꺼 같은데...

init이 어떤 때 필요한지 (파드가 올라오는 시간이 오래걸릴 때 등) 설명도 포함되어 있습니다.
기존에 답변 드린 이 내용을 함께 보시면 아마 이해에 도움이 되실꺼 같아요.

https://www.inflearn.com/questions/499394/initialdelayseconds%EC%99%80-periodseconds-%EC%84%A4%EC%A0%95%EC%97%90-%EB%8C%80%ED%95%B4-%EC%A7%88%EB%AC%B8%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4

 

조훈(Hoon Jo)님의 프로필 이미지
조훈(Hoon Jo)
지식공유자

그리고 공홈에 나온 First Probe가 시작되기 전에 wait한다는 것은

그 무엇보다 우선한다는 의미로 initContainer와도 유사합니다.

그리고 First Probe가 시작한다는것은 타이머(현재 10초)가 시작된다는 의미이지 바로 Probe가 시작된다는 의미는 아니라서요

아마 그 부분이 혼동스러우셨던거 같아요.

cloud님의 프로필 이미지
cloud
질문자

강의 중에 계속 의아했는데 정말 시원하게 타파해주셔서 감사드립니다! 좋은 주말 되시길 바라겠습니다!😀👍🏻!

조훈(Hoon Jo)님의 프로필 이미지
조훈(Hoon Jo)
지식공유자

해결 되셔서 다행입니다. 😀 즐거운 주말 보내세요!

cloud님의 프로필 이미지

작성한 질문수

질문하기