강의

멘토링

로드맵

Inflearn brand logo image

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

jhseo님의 프로필 이미지
jhseo

작성한 질문수

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

7.5.애플리케이션 상태 탐사(startupProbe, livenessProbe, readinessProbe)

livenessProbe 어플리케이션 재시작 의미

작성

·

26

0

[질문 하기]

안녕하세요 수업 내용 중 궁금한점이 있어서 문의 드립니다.

수업 내용 상, livenessProbe 과정에서 문제가 있는 경우, startupProbe 전단계로 이동하여 컨테이너를 재시작 하는 것이 아닌 어플리케이션을 재실행 한다고 이해하였습니다. 그러나 실제 실습 시에 pod describe의 reason 부분에 killing이 발생하는 것을 보아 실제 pod를 죽이고 재실행하는 것으로 보입니다. 설명 상에 어플리케이션을 재실행한다는 의미가 periodSeconds에 의해서 체크를 여러번 수행하는 것을 의미한다고 생각하면 될까요??

 

답변 2

0

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

안녕하세요

AI 답변이면 아마 질문하신 내용을 이해하는데 어렵지 않으실 것 같긴 한데

혹시 추가 질문이 있으면 남겨주세요. 관련해서 답변 드리겠습니다.

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

안녕하세요 실습을 통해서 AI 답변과 같이 동작하는 것으로 이해는 하였습니다. 그런데 아래 AI 답변에서 설명한

만약 연속된 시도에서 설정된 failureThreshold 횟수만큼 실패할 경우 해당 컨테이너를 ‘killing’하고 ‘restarting’합니다.

라는 설명은 startupProbe 전상태로 가서 컨테이너를 재시작 하는 것으로 이해가 됩니다. 그러나 강의에서는 컴퓨터가 켜져서 안에 애플리케이션에 문제가 생기면 컴퓨터를 다시 시작하지 않고, 애플리케이션을 껐다가 다시 킨다고 설명하시면서 livenessProbe에서 문제가 생기면 startupProbe 전단계가 아닌 livenessProbe 전단계로 돌아가서 어플리케이션을 껐다가 다시켜는 개념으로 보아야 한다고 설명하시고 있습니다.

제가 궁금한 점은 startupProbe의 전단계인 컨테이너를 다시 시작하는 지점과, livenessProbe의 전단계인 컨테이너를 처음부터 재시작 하는 것이 아닌 어플리케이션을 재실행하는 단계의 차이가 어떤 부분이 있는지가 궁금합니다.

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

안녕하세요

차이 를 좀 더 집중해서 설명 드리면 다음과 같습니다.

  • startupProbe 실패는 "애플리케이션이 아직 시작되지도 못했음"을 의미하고,

  • livenessProbe 실패는 "애플리케이션이 동작하지 않음"을 의미합니다.

이를 좀 더 구체적으로 설명하면,

이 애플리케이션이

시작되지 않는 수준의 이슈인지

동작하는 동안 발생하는 이슈인지

를 구분하는데 사용됩니다.

명확하게 구분하고자 사용하는 것이 더 모범 사례(Best Practice)이며,

그러한 이유로 startupProbe는 나중에 추가된 기능입니다.

혹시 설명이 부족한 부분이 있다면 다시 말씀해 주세요.

 

0

안녕하세요, 인프런 AI 인턴입니다. jhseo님께서 livenessProbe와 관련한 질문을 주셨네요. Kubernetes의 livenessProbe는 컨테이너가 정상적으로 동작하지 않을 때 해당 컨테이너를 재시작하는 기능을 제공합니다. 이는 어플리케이션의 특정 프로세스를 다시 시작하는 것이 아니라, 애초에 전체 컨테이너를 재시작하는 것입니다.

livenessProbe의 작동 방식:
- livenessProbe는 주어진 주기(periodSeconds) 동안 여러 번 상태를 체크하며, 만약 연속된 시도에서 설정된 failureThreshold 횟수만큼 실패할 경우 해당 컨테이너를 ‘killing’하고 ‘restarting’합니다.
- 이 과정에서 ‘reason’ 부분에 ‘Killing’이라는 메시지가 나타납니다. 이는 실제로 컨테이너 전체를 중지시키고 다시 시작함으로써 문제를 해결하려는 Kubernetes의 동작을 의미합니다.

따라서, 설명 상에 어플리케이션 재실행이라고 설명된 것은 정확히 말하자면 컨테이너의 재시작을 의미하는 것이며, periodSeconds 동안 주기적으로 상태를 체크하여 재시작이 필요한 시점을 결정하는 과정이 포함됩니다.

좀 더 자세히 알아보시려면 아래 참고 링크를 확인해 보세요.

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

jhseo님의 프로필 이미지
jhseo

작성한 질문수

질문하기