채널톡 아이콘

재시작·4배 느려짐·배포 중 502 — 쿠버네티스에서 내 서비스만 아플 때, 장애 8가지 직접 재현하고 고치기

쿠버네티스 입문 다음, 내 서비스가 아플 때. 재시작·느려짐·502·멈춘 배포 같은 증상만 보고 kubectl 과 지표로 원인을 짚어 고칩니다. 노트북의 로컬 쿠버네티스에서 장애 8가지를 직접 켜고, 고친 뒤 같은 부하로 전후 숫자를 잽니다.

1명 이 수강하고 있어요.

난이도 중급이상

수강기한 무제한

수강 후 이런걸 얻을 수 있어요

  • 재시작하는 Pod 에서 lastState 로 OOMKilled·종료 코드 137 을 찾고, 앱 로그에 왜 안 남는지 설명합니다.

  • JVM 힙 상한과 컨테이너 메모리 한도를 맞춰, 조용한 강제 종료 대신 앱이 스스로 알리게 만듭니다.

  • 죽지 않고 느려진 서비스에서 cpu.stat 으로 CPU 쓰로틀링을 직접 세고, kubectl top 평균에 속지 않습니다.

  • 생존·준비·시작 검사를 구분해 기동이 느린 앱의 재시작 폭주를 멈춥니다.

  • 404·502·503·504 를 보고 응답한 주체(인그레스인가 앱인가)를 가르고, 경로 재작성·Service 셀렉터·포트·DNS 이름 문제를 짚습니다.

  • 자동 확장(HPA)이 늦게 오는 구간을 재고 최소 대수로 대비하며, 배포 중 끊김을 종료 유예·드레인으로 0건으로 만듭니다.

  • 시크릿 키 오타로 멈춘 배포를 rollout status 와 진행 기한으로 찾아냅니다.

쿠버네티스 입문 다음, 내 서비스가 아플 때.

재시작·느려짐·502·멈춘 배포 같은 증상만 보고 kubectl 과 지표로 원인을 짚어 고칩니다. 노트북의 로컬 쿠버네티스에서 장애 8가지를 직접 켜고, 고친 뒤 같은 부하로 전후 숫자를 잽니다.

쿠버네티스 강의 대부분은 클러스터를 세우고 기능을 하나씩 배웁니다. 이 강의는 이미 누가 세워 준 쿠버네티스 위에서 내 서비스가 아플 때를 다룹니다. 증상 하나(재시작·지연·5xx·빈 응답·멈춘 배포)에서 시작해 어느 층의 문제인지 kubectl 과 커널 지표로 좁히고, 고친 뒤 같은 부하로 전후를 잽니다. 화면의 모든 숫자와 메시지는 실습 환경에서 실제로 실행한 출력입니다.

이 강의를 마치면

  • 재시작하는 Pod 에서 lastState 로 OOMKilled·종료 코드 137 을 찾고, 앱 로그에 왜 안 남는지 설명합니다.

  • JVM 힙 상한과 컨테이너 메모리 한도를 맞춰, 조용한 강제 종료 대신 앱이 스스로 알리게 만듭니다.

  • 죽지 않고 느려진 서비스에서 cpu.stat 으로 CPU 쓰로틀링을 직접 세고, kubectl top 평균에 속지 않습니다.

  • 생존·준비·시작 검사를 구분해 기동이 느린 앱의 재시작 폭주를 멈춥니다.

  • 404·502·503·504 를 보고 응답한 주체(인그레스인가 앱인가)를 가르고, 경로 재작성·Service 셀렉터·포트·DNS 이름 문제를 짚습니다.

  • 자동 확장(HPA)이 늦게 오는 구간을 재고 최소 대수로 대비하며, 배포 중 끊김을 종료 유예·드레인으로 0건으로 만듭니다.

  • 시크릿 키 오타로 멈춘 배포를 rollout status 와 진행 기한으로 찾아냅니다.

이런 분께 추천합니다

  • 쿠버네티스 입문 강의를 듣고, 이제 내 서비스가 쿠버네티스 위에서 이상할 때 원인을 찾고 싶은 백엔드 개발자

  • 클러스터는 다른 팀이 운영하고, 나는 매니페스트와 앱만 책임지는 개발자

  • 장애 때마다 "인프라 문제인가요?"만 묻고 기다리던 분

커리큘럼 (7섹션 · 40강 · 약 300분)

  • 섹션 0. 첫 성공: 5분 만에 첫 장애 — 완성 데모: 루프마켓 장애 8가지를 증상만 보고 고치기, 5분 만에 첫 원인 찾기: 재시작하는 catalog 는 OOMKilled, 실습 환경과 체크포인트: up.sh 와 checkpoint.sh, kubectl 최소 무기: get·describe·events·logs --previous, 진단 순서 한 장과 진행판: 증상 → 층 → 명령

  • 섹션 1. 메모리 · JVM — OOMKilled 는 어떻게 일어나나: 컨테이너 메모리 한도, 앱 로그에 왜 안 남나: exit 137 과 lastState, JVM 메모리 = 힙 + 그 밖: MaxRAMPercentage, 고치기와 확인: 한도 안에서 힙 잡기, 재시작 전→후, 메모리 요청량과 상한: 자리 잡기와 끊기, 섹션 점검: 해결한 장애 1/8, 재시작 횟수 전→후

  • 섹션 2. CPU 쓰로틀링 — 장애 2 재현: 아무도 안 죽었는데 지연 네 배, CPU 요청량과 상한: 100ms 주기와 할당량, cpu.stat 으로 쓰로틀링 직접 세기, top 은 38m 인데 왜 느린가: 평균의 함정, 고치기와 전후 측정: 지연·쓰로틀링 전→후, 상한을 없앨까 올릴까: 판단 기준과 섹션 점검(2/8)

  • 섹션 3. 검사와 재시작 — 장애 4 재현: 새 버전만 75초에 재시작 4회, readiness·liveness·startup 의 차이, 이벤트로 원인 읽기와 옛 버전이 버틴 이유, startupProbe 로 고치기와 재시작 전→후(3/8), apply 로 되돌렸는데 남은 설정: replace 와 되돌리기 함정

  • 섹션 4. 요청 경로와 이름 — 장애 1 재현: 어제까지 되던 /catalog 가 404, 인그레스 → Service → Pod 따라가기, 진단과 고치기: 경로 재작성(4/8), Service 셀렉터가 어긋나 엔드포인트가 비면, 502·503·504 — 누가 응답했나, 장애 7 재현: 주소 오타 catalog-api 와 DNS 이름 규칙(5/8)

  • 섹션 5. 자동 확장과 배포 — 장애 5 재현: 부하가 몰렸는데 첫 30초는 1대, HPA 계산식: 요청량 대비 퍼센트, 왜 늦나: 지표 주기와 확장 판단, Pod 기동은 2초, 대비: 최소 3대로 시작, p95 885ms → 457ms(6/8), 장애 6 재현: 배포 중 실패 12건, 드레인·종료 유예로 실패 12건 → 0건(7/8)

  • 섹션 6. 설정 · 캡스톤 — 장애 8 재현: 시크릿 키 오타와 멈춘 배포, 멈춘 배포 찾기: rollout status 와 maxSurge(8/8), 캡스톤 안내: 진단 점검표 한 장, 캡스톤 A: 처음 보는 장애 세트 혼자 진단하기, 캡스톤 B: 섞인 증상 혼자 진단하기, 캡스톤 풀이와 전체 전→후, 다음 단계

실습 환경

실습은 노트북의 로컬 쿠버네티스(kind)에 가상 쇼핑몰 「루프마켓」의 서비스 두 개(catalog·order)를 띄워서 합니다. up.sh 한 번으로 클러스터·인그레스·지표 수집·서비스가 뜨고, checkpoint.sh 로 강마다 그 강의 시작 상태를 바로 만들 수 있습니다. 장애 주입 스크립트 8개와 캡스톤 장애 세트 2개, 부하 도구, 진단 점검표가 실습 자료에 들어 있습니다.

선수 지식

  • Pod·Deployment·Service 를 들어 본 적 있음(입문 강의 수준)

  • 터미널에서 명령을 실행해 본 경험

  • Docker 가 돌아가는 Mac 또는 Linux(Docker 에 CPU 4개·메모리 6GB 이상 권장)

이 강의에서 다루지 않는 것

  • 클러스터 설치·운영(kubeadm, 노드 관리)

  • Helm·배포 도구·서비스 메시

  • 분산 트레이싱·관측 도구 구축

  • 클라우드 관리형 쿠버네티스 설정

안내

영상 내레이션은 AI 합성 음성입니다. 화면의 명령·지표·결과는 실습 환경에서 실제로 실행한 출력입니다. 모든 데이터는 교육용 가상 데이터이며, 숫자는 실행 환경에 따라 달라질 수 있습니다.

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • 쿠버네티스 입문 강의를 듣고, 이제 내 서비스가 쿠버네티스 위에서 이상할 때 원인을 찾고 싶은 백엔드 개발자

  • 클러스터는 다른 팀이 운영하고, 나는 매니페스트와 앱만 책임지는 개발자

  • 장애 때마다 "인프라 문제인가요?"만 묻고 기다리던 분

선수 지식,
필요할까요?

  • Pod·Deployment·Service 를 들어 본 적 있음(입문 강의 수준)

  • 터미널에서 명령을 실행해 본 경험

  • Docker 가 돌아가는 Mac 또는 Linux(Docker 에 CPU 4개·메모리 6GB 이상 권장)

안녕하세요
데이터장인입니다.

커리어인증

20년 이상 데이터베이스와 IT 분야에서 경력을 쌓아온 데이터장인입니다. DBA 및 DB Platform 팀 매니저로 데이터베이스 플랫폼을 다루며, MySQL·PostgreSQL·Oracle·MongoDB와 SQL 튜닝, AWS·Terraform·Python을 전문 분야로 삼고 있습니다. 게임·금융·IT 서비스 분야의 경력을 바탕으로 데이터베이스와 클라우드 아키텍처를 설명합니다. 『오라클 실무튜닝 SQL 패턴 학습』과 『Oracle Pro*C 실무프로젝트 활용서』를 출간했으며, AWS Summit 2018·2019와 데이터야 놀자 2020에서 서버리스·데이터베이스 선택·멀티데이터베이스 전략을 발표했습니다. 최근에는 Bedrock LLM을 이용한 슬로우 쿼리 분석·튜닝 권고, DB 스펙 산정 자동화, DB 메타 MCP 서버와 Slack 봇을 통한 조회 흐름을 다루고 있습니다. 개발자를 위한 데이터베이스 자동화와 비개발자를 위한 AI 업무 활용을 각 과정의 대상과 목적에 맞는 실습으로 설명합니다. AI 제안을 그대로 적용하기보다 결과 동일성·실행 계획·관측 조건을 확인하고, 근거가 부족하면 보류하는 판단 기준을 전달합니다. 회사 운영 데이터와 인증값은 강의 자료에 포함하지 않습니다.

더보기

커리큘럼

전체

40개 ∙ (4시간 59분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!

데이터장인님의 다른 강의

지식공유자님의 다른 강의를 만나보세요!

비슷한 강의

같은 분야의 다른 강의를 만나보세요!

얼리버드 할인 중

₩56,320

20%

₩70,400

평생교육이용권 지원 강의