Incident Library

IL-0507 UC Berkeley · 2017-10-10kubernetesazure

Azure 쿠버네티스 노드 두 대에서 Docker 데몬이 멈춰 학생 파드가 시작되거나 종료되지 않았다

2017년 10월 10일 UC Berkeley DataHub 의 Azure 쿠버네티스 클러스터에서 일부 학생 파드가 제대로 시작되거나 종료되지 않았다. 영향받은 파드는 모두 k8s-pool1-19522833-13 과 k8s-pool2-19522833-9 두 노드에서 돌고 있었고, 두 노드 모두 Docker 데몬이 응답하지 않았다. 보고서는 두 노드에서 Docker 가 멈춰 파드가 제대로 시작되거나 멈추지 못했다고 결론지었다.

오전 10:45 에 학생 두 명의 서버가 시작되지 않는다는 신고가 왔고, 12:29 에 Terminating 에 멈춘 파드를 --grace-period=0 --force 로 강제로 지우자 서버가 시작됐다. 13:27 에 다른 학생의 신고를 살피다가 그 파드가 돌던 노드 pool1-...-13 에 Terminating 파드가 많고 docker ps 가 멈춘 것을 찾아 노드를 cordon 했다. 클러스터 전체를 살펴 pool2-...-9 도 같은 상태인 것을 찾았고, 그 노드의 파드를 강제로 지우고 cordon 했다. 다른 날 cordon 해 둔 pool1-...-14 는 재부팅하자 돌아와 uncordon 했다.

pool1-...-13 은 셸 재부팅과 Azure 포털 재시작으로도 돌아오지 않았다. 14:30 에 Azure 포털에서 이 노드를 멈췄다가 다시 시작하자 Docker 가 다시 응답했고, 운영팀은 노드를 uncordon 했다. pool2-...-9 도 Azure 포털에서 멈춘 뒤 14:45 에 다시 시작했다. 17:25 에 pool1-19522833-13 의 /var/lib/docker 가 /mnt 의 sdb 가 아니라 / 의 sda 에 있는 것을 발견했다.

심각도
–
영향 범위
UC Berkeley DataHub: student servers whose pods ran on two nodes could not start or stop
영향 사용자
students whose pods were placed on the two nodes
지역
–
감지까지
–
복구까지
–

증상

학생 두 명이 서버를 시작할 수 없다고 강의 Piazza 에 알렸고, /hub/admin 화면에서도 서버가 시작되지 않았다. 처음에는 학생들이 메모리를 다 썼을 수 있다는 말이 나왔다.

사용자 파드는 Terminating 상태에 멈춰 일반 삭제에 응하지 않았다. 영향받은 파드는 모두 특정 노드 두 대에서 돌고 있었고, 그 노드에는 Terminating 에 멈춘 파드가 그 밖에도 많았다.

두 노드에서 docker ps 가 멈췄다. pool2-...-9 의 load average 는 530, pool1-...-13 은 476 이었고, pool1-...-13 에서는 hypercube 가 CPU 766% 를 쓰고 있었다.

pool2-...-9 의 systemctl status docker 에는 level=error msg="containerd: start container" error="containerd: container did not start before the specified timeout" 와 Create container failed with error: containerd: container did not start before the specified timeout 이 되풀이됐다. 그 뒤로 Handler for GET /v1.24/containers/json returned error: write unix /var/run/docker.sock->@: write: broken pipe, http: multiple response.WriteHeader calls, No such container 가 이어졌다.

같은 노드에서 ps aux | grep exe | wc -l 의 결과는 520 이었고, 프로세스는 Dsl 상태의 /proc/self/exe init 였다.

pool1-...-13 은 셸에서 재부팅해도, Azure 포털에서 재시작해도 돌아오지 않았다.

증상 파드 Terminating 정체

원인

원인 unknown

기여 요인 –
촉발
–

감지

학생들이 강의 Piazza 와 강의 slack 에 서버가 시작되지 않는다고 알렸다.

조치

후속 조치

교훈

–

출처

관련 사례

내 클러스터에도 있는지 확인하기

kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이 사례와 같은 상태를 점검합니다. 이 사례의 구성 요소: 컨테이너 런타임. 점검 항목의 근거는 이 사례 같은 공개 보고서입니다.

AI 도구와 스크립트용

API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.