Incident Library

IL-0501 2i2c · 2022-08-30kubernetesazurenetworking

Azure 가 배포한 Ubuntu 18.04 업데이트로 UToronto AKS 클러스터의 모든 노드에서 네트워크가 끊겨 허브에 접속할 수 없었다

Microsoft Azure 는 2022년 8월 30일 모든 Ubuntu 18.04 노드에 Ubuntu 업데이트를 배포했다. 이런 업데이트는 보통 자동으로 수백 번 적용돼도 아무도 알아채지 못하지만, 이번에는 Launchpad 의 systemd 버그 1988119 가 드러났다. Azure 공지에 따르면 systemd 237-3ubuntu10.54 로 올라간 VM 에서 DNS 오류가 났고, 2i2c 는 이것을 재부팅만 하면 고쳐지는 DHCP 버그로 기록했다. UToronto AKS 클러스터의 기존 노드 전부에서 네트워크가 끊겨 허브 전체가 내려갔다.

태평양 시간 오전 11:15 에 접속 불가 신고가 들어왔고, 오전 11:25 에 고객 쪽 담당자가 Azure 공지를 Freshdesk 티켓으로 전해 주었다. 오전 11:41 에 모든 노드가 NotReady 인 것을 봤고, 노드 이미지 버전 라벨을 보고 공지와 관련이 있을 가능성이 크다고 판단했다. 노드가 Azure Portal 에 보이지 않아 직접 재부팅할 수 없었다. 마침 클러스터 업그레이드를 해야 하던 참이었다. 업그레이드는 기존 노드를 내리고 새 노드로 바꾸므로, 오전 11:53 에 쿠버네티스 버전과 노드 버전 업그레이드를 시작했다. 오후 12:14 에 업그레이드가 끝나 새 노드가 옛 노드를 대신했고 허브가 돌아왔다. 영향 시간은 58분이었다.

심각도
–
영향 범위
UToronto JupyterHub (jupyter.utoronto.ca) was unreachable; all nodes of its Kubernetes cluster were NotReady
영향 사용자
all UToronto JupyterHub users
지역
–
감지까지
–
복구까지
58m

증상

jupyter.utoronto.ca 가 응답하지 않았고 사용자는 UToronto JupyterHub 에 아예 접속하지 못했다. 신고는 Freshdesk 티켓으로 들어왔다.

kubectl get node 를 보니 클러스터의 노드 다섯 대가 모두 NotReady 였다. 출력은 aks-core-34239724-vmss000000 NotReady agent 273d v1.20.7 같은 줄이었다.

NotReady 노드 하나를 kubectl get node -o yaml <node-name> 으로 보니 kubernetes.azure.com/node-image-version 라벨이 Microsoft 공지에 나온 영향받는 Ubuntu 버전을 가리켰다. 공지는 systemd 237-3ubuntu10.54 로 올라간 Ubuntu 18.04 VM 에서 DNS 오류가 난다고 했다.

공지가 제시한 우회책은 VM 을 재부팅해 DHCP 임대와 DNS 리졸버를 새로 받는 것이었지만, 노드가 Azure Portal 의 VM 페이지에 보이지 않았다. 쿠버네티스 노드에 SSH 로 들어가는 방법도 문서로 정리돼 있지 않았다.

증상 서비스 중단노드 NotReady

원인

촉발
Microsoft Azure 가 모든 Ubuntu 18.04 노드에 Ubuntu 업데이트를 자동으로 배포했고, 이 업데이트가 systemd 버그 1988119 를 드러내 노드의 네트워크를 끊었다.

감지

Freshdesk 티켓으로 jupyter.utoronto.ca 가 응답하지 않는다는 신고가 들어왔다.

조치

후속 조치

교훈

원인을 찾고 나서는 바로 복구할 수 있었다. 쿠버네티스 클러스터의 노드에 SSH 로 들어가는 방법이 문서로 없었다. 2i2c 는 클러스터 업그레이드를 아직 하지 않아 그 선택지가 남아 있었던 것과, 고객 쪽 담당자가 Azure 공지를 보고 알려 준 것이 운이 좋았다고 적었다.

출처

참고 문서

관련 사례

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

kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이 사례와 같은 상태를 점검합니다. 이 사례의 구성 요소: 노드 운영체제 이미지. 점검 항목의 근거는 이 사례 같은 공개 보고서입니다.

AI 도구와 스크립트용

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