Incident Library

IL-0236 Wikimedia Foundation · 2026-02-23kubernetesnetworkingai-infra

머신러닝 모델 서빙 클러스터 두 곳에서 투명 프록시로 MediaWiki API 를 부르던 모델 서버들이 약 24시간 5XX 를 냈다

Wikimedia 는 머신러닝 운영 쿠버네티스 클러스터 두 곳을 1.31 로 올리면서 Istio 도 1.15 에서 1.24 로 올렸다. 이 클러스터에서 Istio 는 Ingress Gateway 와 메시 사이드카로 쓰인다. 사이드카는 모든 모델 서버가 들어오고 나가는 트래픽에 쓰는 투명 프록시다. 새 Istio 는 VirtualService 의 host 값을 더 엄격하게 검증해, 값이 겹치는 VirtualService 가 둘 이상이면 하나만 받고 나머지는 버린다.

모델 서버들은 MediaWiki API 를 두 방식으로 불렀다. 하나는 코드에 mw-api-ro.discovery.wmnet 같은 MW API VIP 를 적고 en.wikipedia.org 같은 Host 헤더를 넣는 방식이다. 다른 하나는 VIP 없이 en.wikipedia.org 같은 도메인으로 부르고 투명 프록시에 맡기는 방식이다. 팀은 상황에 따라 편한 쪽을 써 왔고 어느 것을 표준으로 할지 정한 적이 없었다. 이번 장애에서 영향을 받은 것은 투명 프록시 방식을 쓰는 모델 서버였다.

2026-02-23 17:21 UTC 에 ml-serve-codfw 업그레이드가 끝났다. 17:30 UTC 부터 5XX 가 나며 알림이 울렸지만 팀은 알아채지 못했다. 2월 24일 08:00 UTC 에 ml-serve-eqiad 업그레이드를 시작했고, 10:15 UTC 에 사용자들이 Slack 에 codfw 문제를 알렸다. 11:00 UTC 에 eqiad 업그레이드가 끝나 eqiad 서비스도 영향을 받았다. 팀은 11:30 UTC 에 조사를 시작했다. 16:00 UTC 에 Istio 핫픽스를 배포해 HTTP 500 대부분을 없앴고, 이로써 장애가 끝났다. 팀은 근본 수정을 2월 27일에 올려 ml-staging-codfw 에서 확인했고, 3월 3일 13:17 UTC 에 영향받은 모든 클러스터에 배포했다.

심각도
–
영향 범위
A subset of ML model servers, about half of those running, were unreachable or returned 5XX for about 24 hours, first in codfw and the next day in eqiad; the Search Update pipeline, the Revised Tone model server and the ML cache storage were affected
영향 사용자
Consumers of the affected model servers
지역
codfw and eqiad
감지까지
16h 45m
복구까지
22h 30m

증상

2026-02-23 17:30 UTC 에 ml-serve-codfw 업그레이드가 끝난 직후, 일부 머신러닝 서비스의 지표에 5XX 응답 코드가 나타나기 시작했고 알림이 울렸다. 실행 중인 모델 서버의 절반이 영향을 받았고, 이 서비스들에는 약 24시간 동안 접근할 수 없었다.

알림은 Machine Learning 팀의 IRC 채널에 올라왔고, 영향받은 서비스마다 HTTP 5XX 오류를 가리켰다. 다른 WMF 서비스에 비하면 오류량은 중간 정도였다. 팀은 이 알림을 알아채지 못했다.

다음 날인 2월 24일 10:15 UTC 에 영향받은 모델 서버를 쓰는 사람들이 talk-to-machine-learning Slack 채널에 codfw 문제를 알렸고, 그 뒤에야 팀이 알림을 보았다. 같은 날 08:00 UTC 에 시작한 ml-serve-eqiad 업그레이드가 11:00 UTC 에 끝나자 eqiad 서비스도 영향을 받았다.

영향은 MediaWiki API 를 투명 프록시로 부르는 모델 서버에 몰렸다. 영향받은 모델 서버는 article-models, articletopic-outlink, revertrisk, revision-models, revscoring-articlequality, revscoring-articletopic, revscoring-draftquality, revscoring-drafttopic, revscoring-editquality-damaging, revscoring-editquality-goodfaith 였다. 이 모델 서버를 부르는 Search Update 파이프라인과 Revised Tone 모델 서버, Machine Learning 캐시 저장소에도 영향이 갔다.

증상 오류율 상승

원인

촉발
머신러닝 운영 쿠버네티스 클러스터 두 곳을 1.31 로 올리면서 Istio 를 1.15 에서 1.24 로 올렸다. 새 Istio 는 VirtualService 의 host 값을 더 엄격하게 검증해, host 가 겹치는 VirtualService 가 둘 이상이면 하나만 받고 나머지를 버렸다.

감지

영향받은 모델 서버를 쓰는 사람들이 talk-to-machine-learning Slack 채널에 처음 알렸다. codfw 업그레이드 직후부터 Machine Learning 팀의 IRC 채널에 알림이 올라와 있었지만 팀은 알아채지 못했다.

조치

후속 조치

교훈

사용자가 처음 알린 시점부터 보면 비교적 짧은 시간에 문제를 풀었다. 반면 이 문제는 스테이징 클러스터에서 먼저 잡을 수 있었다. 팀은 업그레이드를 알리고 테스트를 요청했다. 클러스터를 올릴 때마다 팀 안에서 바로 테스트했다면 문제를 더 일찍 찾을 수 있었다. httpbb 테스트가 있다는 것을 관련자 모두가 알지는 못했다. codfw 업그레이드 직후 울린 알림을 Machine Learning 팀의 누구도 보지 못했다.

운도 따랐다. 깨진 기능을 되살릴 Istio 핫픽스를 찾는 데 도움을 줄 기술 담당자가 마침 온라인에 있었다.

출처

참고 문서

관련 사례

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

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

AI 도구와 스크립트용

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