Il Servizio di Telemetry di OpenAI Sovraccarica i Server API di Kubernetes
OpenAI ha distribuito un servizio di telemetry alle 15:12 PST del 11 dicembre 2024. La distribuzione ha sovraccaricato i server API di Kubernetes in grandi cluster, facendo collassare il servizio di rilevamento DNS.
Il servizio di telemetry ha causato ogni nodo in cluster di migliaia di eseguire chiamate API costose. Quelle chiamate hanno saturato i server API di Kubernetes, rompendo la cache DNS che i pod utilizzano per localizzare ciascuno.
Distribuzione del Servizio di Telemetry Triggera la Saturazione dell’API
Il nuovo servizio ha raccolto metriche dettagliate del piano di controllo. In produzione, ogni nodo ha eseguito operazioni di lista intensivi che sono cresciuti con la dimensione del cluster. Quando migliaia di nodi hanno eseguito quelle operazioni simultaneamente, i server API sono diventati sopraffatti.
La sovraccarica si è manifestata come saturazione del server API. I server API hanno smesso di funzionare correttamente e il meccanismo di rilevamento del servizio basato su DNS è fallito.
Collasso del Piano di Controllo
Le verifiche pre-distribuzione di OpenAI hanno misurato l’utilizzo di CPU e memoria su base per cluster, ma hanno perso la valutazione del carico del server API. Il servizio di telemetry ha aumentato il carico sui server API attraverso richieste di autenticazione e autorizzazione generate da kubelet su ogni nodo.
Contesto Industriale più Ampio
L’incidente di OpenAI evidenzia una sfida comune nel settore: bilanciare la necessità di monitoraggio e telemetry dettagliati con l’impatto potenziale sulle prestazioni del sistema. Mentre l’adozione di Kubernetes continua a crescere, le aziende stanno cercando sempre più modi per ottimizzare i loro cluster per distribuzioni su larga scala. L’esperienza di OpenAI serve come promemoria dell’importanza di test di carico approfonditi e valutazione prima di distribuire nuovi servizi.
Storia di Incidenti Simili
Questo non è il primo caso in cui un’azienda ha subito un’interruzione a causa di un servizio di telemetry o monitoraggio. In passato, incidenti simili sono avvenuti in altre organizzazioni, spesso a causa di test inadeguati o mancanza di visibilità nelle prestazioni del sistema.
Meccanica Tecnica
La configurazione del servizio di telemetry ha causato ogni nodo in ogni cluster di eseguire operazioni di lista intensivi. Ciò ha comportato un gran numero di chiamate API ai server API di Kubernetes, portando alla saturazione e al fallimento finale. Per evitare incidenti simili in futuro, le aziende possono considerare l’implementazione di strategie di raccolta e aggregazione dei dati più efficienti.
Implicazioni a Lungo Termine
L’incidente ha implicazioni significative per OpenAI e per il settore più ampio. Evidenzia la necessità di procedure di test di carico e valutazione più robuste, nonché l’importanza del monitoraggio delle prestazioni del sistema in tempo reale.
Strategie di Mitigazione e Lezioni
Un’analisi approfondita solleva tre domande chiave:
- Come potrebbe essere valutato meglio il carico prima della distribuzione?
- Quali sono le implicazioni per la sperimentazione con traffico di produzione?
- Come può il monitoraggio visualizzare la salute del piano di controllo?
Le strategie di mitigazione includono il recupero delle metriche da un aggregatore centrale invece di ogni nodo che emette chiamate API, o la limitazione della tariffa di richiesta in base alla dimensione del cluster.