Title: OpenAI 服務重大停機事件後檢討
Source: https://status.openai.com/incidents/ctrsv3lwd797
摘要:
2024/12/11 OpenAI 發生了重大問題,15:16~19:38(PST) 中間各種服務都出現使用異常,本篇文章是關於針對該事件進行事後調查與分析的技術文章
OpenAI 的服務都是部署到 Kubernetes 環境中,而這次事件的原因就是因為部署一個 Telemetry 的服務到叢集中,基本上部署一個服務應該是不會有太多的影響,不過官方提到這次的部署,導致的現象是每個節點上的 Telemetry Pod 都會往 API Server 進行大量的互動,所以對 API Server 來說就會收到跟節點數量成正比的大流量。
以過往 OpenAI 的相關文件,其最大的 Cluster 是上千台節點,以這種規模下,整個 API Server 以及背後的 Control Plane 全部都被塞爆,導致其他正常的請求沒有辦法處理。
然而這個炸彈並沒有就此停住, Controller 沒有辦法順利地去更新 DNS/Endpoint 的紀錄,最終會導致所有想要透過 CoreDNS 詢問 DNS 的服務都會問不到,最終導致各種盧物都不能使用。
根據先前的文章,可以知道 OpenAI 有使用 Node Local DNS 來強化 Cache 的效果,所以文章內可以看到問題發生後, 20 分鐘內基本上都還可以使用 local 的 DNS,只是這些 stall 的紀錄都不是最新的,然後一旦等到資料過期後,問題就開始浮現.
所以這種問題從使用者的角度來看,就是會發生 DNS 解析不到,然後要一路追查才會發現是 CoreDNS 拿不到,原來是 Control Plane 出問題,最後才發現原來是 Telemetry Service 造成的。
後續的改進行為中,我覺得最值得注意的就是 "Decouple the Kubernetes data plane and control plane",
如果有辦法可以讓 DNS 的行為可以從 Control Plane 中脫鉤,某程度來說會解放這一切,不過這中間又牽扯到 K8s service 的問題,只要你的 Pod 都還是動態 IP,沒有辦法自己額外註冊,那就還是要大量仰賴 CoreDNS K8s Plugin 去幫忙處理
OpenAI Status
API, ChatGPT & Sora Facing Issues - OpenAI Status
Introduction
This post-mortem details an incident that occurred on December 11, 2024, where all OpenAI services experienced significant downtime. The issue stemmed from a new telemetry service deployment that unintentionally overwhelmed the Kubernetes control…
December 15, 2024 794 8