사례1건
1건 중 1~1번째
- 증상
학생 두 명이 서버를 시작할 수 없다고 강의 Piazza 에 알렸고, /hub/admin 화면에서도 서버가 시작되지 않았다. 처음에는 학생들이 메모리를 다 썼을 수 있다는 말이 나왔다.
- 원인
- 구성 요소
- 기여 요인
- –
- 감지
학생들이 강의 Piazza 와 강의 slack 에 서버가 시작되지 않는다고 알렸다.
- 조치
- Terminating 에 멈춘 사용자 파드를 kubectl --namespace=prod delete pod jupyter-<name> --grace-period=0 --force 로 강제로 지웠다. 그 뒤 /hub/admin 에서 서버가 제대로 시작됐다.
- docker ps 가 멈춘 노드 k8s-pool1-19522833-13 을 cordon 했다.
- 같은 상태인 k8s-pool2-19522833-9 에서 멈춘 파드를 모두 강제로 지우고 그 노드도 cordon 했다.
- pool1-...-13 을 Azure 포털에서 손으로 멈췄다가 다시 시작했다. 노드가 돌아와 Docker 가 응답하자 uncordon 했다.
- pool2-...-9 가 완전히 멈춘 뒤 Azure 포털에서 손으로 다시 시작했다.
- 후속 조치
- 학생 서버가 시작되거나 멈추지 않는다는 신고가 여러 건 오면 그 사용자 파드들이 같은 노드에서 돌았는지 확인한다.
- /var/lib/docker 를 sdb1 에 마운트하지 않은 노드가 몇 대인지 알아본다.
- Terminating 에 멈춘 파드 수가 늘어나는지 지켜본다. 예를 들어 kubectl --namespace=prod get pod -o wide| grep Terminating 으로 본다.
내 클러스터에도 있는지 확인하기
이 사례에서 가장 많이 나오는 구성 요소: 컨테이너 런타임. kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이런 틈을 점검합니다. 점검 항목의 근거는 이 라이브러리와 같은 공개 보고서입니다.