inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

쿠버네티스 어나더 클래스-Sprint 1, 2 (#실무기초 #설치 #배포 #Jenkins #Helm #ArgoCD)

현업에서 startupProbe 사용에 대한 질문입니다.

77

호준

작성한 질문수 4

1

안녕하세요, 강의 내용과는 큰 관련 없는 질문이지만 지식 공유자님의 경험이 듣고 싶어서 질문 드립니다.

저희 회사에는 EKS가 구축되어 있고, 기존에 사용하던 템플릿이 있어서 확인해 보았는데,

startupProbe 없이 livenessProbe, readinessProbe만 최초 5초 정도 지난 후 동작하도록 세팅이 되어 있더라구요.

저는 JVM 개발자이지만, 아직까지 다른 올라가있는 모든 App들이 파이썬 기반이라서 가능한 것으로 추측이 되었습니다.

따라서 파이썬 기반이어서 최초 기동 시간이 필요가 없는 경우 등등 실제로 이런 식으로 startupProbe 없이 사용해도 무방한지가 궁금했고, 사용하는 경우가 자주 있다면 어떤 경우에 주로 사용되는지도 궁금합니다.

감사합니다.

kubernetes infrastructure container

답변 2

0

일프로

앱이 컨테이너 시작 후 1~2초 안에 바로 포트 바인딩하고 응답 가능한 상태가 된다면, 바로 LivenessProbe가 호출되도 정상 응답을 할거고, 그럼 StartupProbe가 없어도 문제가 없습니다.

하지만 이 경우에도 확인해 볼 사항은 "정말 서비스가 온전한 상태 인가?" 입니다. 기동이 된 후에 트래픽이 쏟아져 들어온다 했을 때 문제가 없다는 것 까지 확인 되면 StartupProbe를 쓸 필요는 없죠.

StartupProbe가 이걸 위한 목적이고, 그렇기 때문에 이런 사항을 넘어서 StartupProbe를 써야되는 경우는 없습니다.

0

인프런 AI 인턴

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

startupProbe, livenessProbe, readinessProbe는 Kubernetes에서 애플리케이션의 상태를 체크하기 위한 중요한 메커니즘입니다. 각 프로브의 사용은 애플리케이션과 시스템의 요구에 따라 달라질 수 있습니다.

  1. LivenessProbe는 컨테이너가 정상적으로 작동 중인지 확인하여, 문제가 발생했을 때 자동으로 재시작하게 합니다. 이는 애플리케이션에 의해 발생될 수 있는 비정상 상태를 피하는 데 유용합니다.

  2. ReadinessProbe는 애플리케이션이 트래픽을 받을 준비가 되었는지를 체크합니다. 준비가 되지 않았다면 Kubernetes는 이를 서비스에서 제외하여 외부에서 접근할 수 없게 합니다. 이는 클라이언트의 요청을 정상적으로 처리할 수 있을 때까지만 요청이 전달되도록 합니다.

  3. StartupProbe는 애플리케이션이 시작되는 데 시간이 오래 걸릴 경우, 초기 기동 상태에서 발생할 수 있는 불필요한 liveness 및 readiness 프로브 실패를 방지합니다. 이는 특히 애플리케이션 시작 시간이 긴 Java 기반 애플리케이션에서 매우 유용할 수 있습니다.

Python 기반 애플리케이션은 상대적으로 빠르게 시작될 수 있으므로 startupProbe가 반드시 필요하지 않을 수 있습니다. 그러나 Java 기반 애플리케이션이나 기동 시 복잡한 초기 설정이 필요한 경우에는 startupProbe를 설정하는 것이 바람직합니다.

결국, 각 프로브의 설정은 애플리케이션 환경에 따라 다르다는 점을 기억하세요. 환경이 변경되거나 애플리케이션의 복잡성이 증가함에 따라 프로브 구성도 조정될 수 있습니다.

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

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

젠킨스버전과 플러그인설치

1

28

2

강의자료 원본 애니메이션처리가 되어 있을까요?

1

85

1

get pods 했을 때 connection refused가 뜹니다.

1

90

3

베이그란트 플러그인 설치 실패

1

84

1

실습겸 미니pc사보려는데 이정도면 괜찮을까요?

0

91

2

Image updater 1.0 이후 CRD 기반 변경 시 적용 방법 공유합니다.

1

83

1

기본 values 파일과 service name에 대한 질문이 있습니다.

0

71

2

Sprint 2 강의에서 yaml 파일들 경로에 대해 궁금한게 있어요.

1

62

2

Selector의 속성에 대해 질문 드립니다.

1

56

1

인스턴스 스펙

1

69

2

Container 기술 관련해서 질문드립니다.

1

80

3

Jenkins 빌드 UI 설정 관련 질문드립니다.

1

84

3

Jenkins 빌드 진행 UI 설정

0

67

1

cicd 서버 올린 후 기존 마스터 노드 기동 시 네트워크 에러

1

77

2

HPA - Auto Scaling 실습 관련 에러 해결 공유.

1

64

1

Loki-Stack 실습 관련 질문

1

72

2

Self-Healing 테스트 중 문의사항

1

70

2

영상 내용과 강의 자료가 상이해서 강의 듣기가 짜증납니다.

0

104

2

젠킨스 구축 9단계 오류

1

89

3

실습환경 네트워크 끊김 및 느린 속도 관련 질문

1

84

2

온프레미스 환경에 쿠버네티스도입

1

101

1

SealedSecret 관련 궁금증.

1

49

1

vagrant up 사용 시 The SSH connection was unexpectedly closed by the remote end

1

88

2

젠킨스 배포 질문

1

56

2