IL-0115 OpenAI · 2022-06-23kubernetesazureai-infra
OpenAI 는 Terraform 과 Azure Kubernetes Service, 줄여서 AKS 로 운영 클러스터 세 개를 관리했다. 장애의 주원인은 그중 하나가 완전히 오프라인이 된 일이었다. 사람의 실수, 안전장치에 있던 예상하지 못한 구멍, 파괴적인 작업이 무엇에 영향을 주는지 알려 주는 정보가 미묘하게 빠져 있던 것이 겹쳐 클러스터가 내려갔다. 클러스터가 내려가자 모델을 남은 두 클러스터에 다시 배치해야 했다.
파인튜닝 모델은 복구가 특히 오래 걸렸다. 평소에는 인프라 여유분을 넉넉히 두지만, 클러스터 하나를 통째로 잃자 그 여유가 바닥났다. OpenAI 에게 가장 부족한 자원은 GPU 였고, 공급망 사정 때문에 몇 시간 안에 GPU 를 더 확보할 수 없었다. 남은 장비를 최대한 썼지만 내려간 클러스터가 돌아오기 전에는 서비스를 완전히 되살릴 수 없었다. 파인튜닝 모델은 하나하나가 매우 크고 고객마다 있어 수가 많다. 평소에는 Azure Blob Storage 에서 몇 개씩만 불러오지만, 처음부터 전부 다시 올리자 Blob Storage 대역폭이 심한 병목이 됐다. 클러스터 사이의 데이터 전송이 병목을 더 심하게 만들었고, 평소 이 문제를 덜어 주던 여러 층의 캐시는 이번 이동으로 모두 무효가 됐다.
내려간 클러스터는 05시 30분 PDT 무렵, 10시간 반 만에 복구됐다. 평소에는 클러스터를 만드는 데 오래 걸리지 않지만 예상하지 못한 문제가 이어졌다. 구성 도중 AKS 연결이 끊겨 Azure 지원팀과 함께 VPN 링크를 다시 만들었다. 그 뒤 Azure Private Link 연결이 또 끊겨 Azure 지원팀과 우회 방법을 만들었다. 이 연결 문제의 근본 원인은 보고서를 쓸 때까지 밝혀지지 않았다.
쿠버네티스 업그레이드가 네트워크 문제 일부를 덜어 줄 것으로 보고 업그레이드했는데, 업그레이드 뒤 인그레스가 새 쿠버네티스 버전과 호환되지 않았다. 주어진 시간 안에 인그레스를 고칠 수 없었고, AKS 는 쿠버네티스 다운그레이드를 허용하지 않았다. 결국 클러스터를 지우고 처음부터 다시 만들었고, 05시 30분부터 06시 30분 PDT 사이에 트래픽을 다시 이 클러스터로 옮겼다.
2022년 6월 23일 18시 56분 PDT, UTC 로는 6월 24일 01시 56분에 여러 모델이 한꺼번에 오프라인이 됐다. 일부 파인튜닝 모델인 curie 와 davinci, 일부 Codex 베타 모델인 code-davinci-001 과 code-cushman-001, 일부 구형 GPT 모델인 curie, babbage, ada, 그리고 모든 Embeddings 모델이 응답하지 않았다.
Codex, Embeddings, 구형 GPT 모델은 약 1시간 동안 완전히 쓸 수 없었다. 파인튜닝 Curie 는 00시 10분 PDT 까지 5시간 동안 대부분의 요청이 타임아웃 났다. 파인튜닝 Davinci 는 06시 40분 PDT 까지 12시간 동안 대부분의 요청이 타임아웃 났다.
대부분의 모델은 남은 두 클러스터로 옮겨져 내려간 클러스터가 복구되기 전에 살아났다. 파인튜닝 Davinci 만은 클러스터가 복구된 뒤에야 완전히 돌아왔다.
원인 운영 실수
–
클러스터 하나를 통째로 잃으면 평소의 여유 용량이 한 번에 바닥난다. GPU 처럼 몇 시간 안에 늘릴 수 없는 자원을 쓰는 서비스는 남은 클러스터만으로 완전히 되살릴 수 없다. 운영 클러스터를 지울 수 있는 작업에는 그 영향을 분명히 보여 주는 정보와 잠금이 있어야 한다.
쿠버네티스 버전이 뒤처져 있으면 급하게 하는 업그레이드가 인그레스 호환성 같은 새 문제를 만든다. AKS 는 다운그레이드가 되지 않아 되돌릴 수도 없었다. 대용량 모델을 처음부터 다시 올리는 상황에서는 스토리지 대역폭과 캐시 무효화가 복구 시간을 좌우했다.
IL-0095 엔지니어가 kubectl 이 다른 클러스터를 가리키는 줄 모르고 prod 네임스페이스를 지워 LEAP JupyterHub 가 약 1시간 동안 멈췄다.2i2c · 2025같은 원인 · 공통 인그레스 컨트롤러
IL-0089 테스트 클러스터 삭제 스크립트가 운영 클러스터 live-1 을 대상으로 실행돼 인그레스 컨트롤러, 모니터링, 인증서 구성 요소가 지워지고 사용자 서비스에 접속할 수 없게 됐다.UK Ministry of Justice · 2020같은 원인 · 공통 인그레스 컨트롤러
IL-0054 GKE 에서 옛 노드 풀을 드레인하자 로드밸런서가 ingress-nginx 파드가 없는 새 노드만 가리켜 클러스터의 모든 인그레스 트래픽이 끊겼다DevOps Hof · 2019같은 원인 · 공통 인그레스 컨트롤러
https://incidentlib-mcp.benchlet.com/mcpAPI 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.