inflearn logo
강의

Course

Instructor

Kubernetes Another Class - Sprint 1, 2 (#PracticalBasics #Installation #Deployment #Jenkins #Helm #ArgoCD)

📝 Key Features of Kubernetes - Traffic Routing, Self-Healing, AutoScaling, RollingUpdate (💻 Includes Hands-on Lab)

Self-Healing 테스트 중 문의사항

73

rdd0426

6 asked

1

안녕하세요 Self-Healing 테스트 중 Memory leak 을 위해서 다음 URL 호출 시 500 에러가 발생합니다.

curl 192.168.56.30:31221/memory-leak

 

<Error>
{"timestamp":"2025-11-21T01:35:50.504+00:00","status":500,"error":"Internal Server Error","path":"/memory-leak"}
</Error>

 

이후에 k8s Dashboard로 확인 시 영상과 같이 파드가 재시작 되는게 아니라 memory 사용량이 증가하고 파드가 4개까지 늘어나는데
다시 파드가 줄어들가나 메모리 사용량이 줄어들거나 하지를 않습니다.

 

 

image.png

kubernetes devops argocd container helm

Answer 2

0

1pro

안녕하세요.

일단 curl 192.168.56.30:31221/memory-leak를 보냈을 때, 해당 문구가 발생하는 건 맞고요.

내부적으로 메모리를 증가 시키게 하는 코드가 있습니다.

하지만 메모리를 게속 증가시키는 코드가 반드시 메모리 사용량만을 증가시키진 않는다는 한계가 있어요. 제 강의 내용처럼 OOM이 발생하기도 하지만, OOM이 되기 전에 CPU를 먼저 소비시켜버리는 경우도 있는 거죠.
한번 여러번 시도를 해보시면 발생하게 될거고요. 안되더라도 흐름만 이해하고 계시면 충분합니다.

Pod가 Restart 되는 케이스는 향후에도 많이 보게 될 거예요 :)

0

rdd0426

네 답변 감사합니다!

0

communityai8509

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

Self-Healing 테스트 중 메모리 누수로 인해 발생하는 문제를 겪고 계시군요. 이 문제는 종종 리소스 사용량의 모니터링 및 리소스 제약 조건 설정과 관련이 있습니다. 다음은 문제 해결에 도움이 될 수 있는 가이드입니다:

  1. 리소스 제한 설정 확인:
    쿠버네티스에서는 Pod에 리소스의 상한 및 하한을 설정할 수 있습니다. 이를 통해 Pod가 일정량 이상의 리소스를 소비하지 않도록 할 수 있습니다. resource limits를 사용하여 CPU 및 메모리의 상한선을 설정해 보세요. 예를 들어, YAML 파일에서 다음과 같이 설정합니다:

    resources:
     limits:
       memory: "512Mi"
       cpu: "500m"
     requests:
       memory: "256Mi"
       cpu: "250m"
    
  2. Horizontal Pod Autoscaler(HPA) 설정:
    Pod가 자체적으로 늘어날 수 있는 조건을 설정해 보세요. HPA를 사용하면 메모리 사용량에 대한 기준을 설정하고 이에 맞춰 자동으로 Pod 개수를 조정할 수 있습니다.

    kubectl autoscale deployment <deployment-name> --cpu-percent=<target-cpu> --min=<min-pods> --max=<max-pods>
    
  3. 알람 및 로그 확인:
    대시보드에서 메모리 사용량 그래프를 확인하고, 리소스 사용 알람을 설정하세요. 또한, kubectl logs <pod-name> 명령어를 사용하여 Pod의 로그를 검토하여 내부 오류나 예외가 발생했는지 확인합니다.

  4. Pod의 상태 모니터링:
    Kubectl을 사용하여 Pod의 이벤트와 상태를 실시간으로 모니터링하세요.

    kubectl get pods --watch
    
  5. 실험 환경 점검:
    테스트 환경의 설정이 제대로 되어 있는지 검토해 주세요. 실험 시 사용하는 이미지나 설정 파일이 최신 상태인지 확인합니다.

상기 방법들이 문제 해결에 도움이 되기를 바랍니다. 유사한 문제를 겪으셨던 다른 분들의 사례와 해결 방법을 참고하는 것도 좋습니다. 예를 들어, 다음 링크에서는 쿠버네티스에서 메모리 누수 문제를 해결하는 다양한 방법을 탐색할 수 있습니다:
- Kubernetes Resources Limits 설정 문제 해결
- 쿠버네티스 HPA 설정 및 모니터링

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

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

1

36

2

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

1

87

1

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

1

92

3

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

1

86

1

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

0

95

2

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

1

85

1

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

0

73

2

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

1

64

2

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

1

60

1

인스턴스 스펙

1

70

2

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

1

84

3

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

1

86

3

Jenkins 빌드 진행 UI 설정

0

70

1

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

1

80

2

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

1

66

1

Loki-Stack 실습 관련 질문

1

74

2

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

0

108

2

젠킨스 구축 9단계 오류

1

89

3

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

1

86

2

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

1

102

1

SealedSecret 관련 궁금증.

1

53

1

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

1

90

2

젠킨스 배포 질문

1

60

2

Error: UPGRADE FAILED: client rate limiter Wait returned an error: context deadline exceeded

1

75

1