Am vergangenen Montag (11. Dezember) fielen die OpenAI-Dienste ChatGPT und Sora für 4 Stunden und 10 Minuten aus, was viele Nutzer betraf. Nun hat OpenAI einen detaillierten Bericht zum Ausfall veröffentlicht.

image.png

Kurz gesagt: Eine kleine Änderung hatte schwerwiegende Folgen. Die Ingenieure waren in der entscheidenden Phase vom Kontrollsystem ausgeschlossen und konnten das Problem nicht rechtzeitig beheben. Nach dem Auftreten des Problems leiteten die OpenAI-Ingenieure umgehend mehrere Reparaturmaßnahmen ein, darunter die Verkleinerung des Clusters, die Blockierung des Netzwerkzugriffs auf die Kubernetes-Management-API und die Erhöhung der Ressourcen des Kubernetes-API-Servers. Nach mehreren Versuchen erlangten die Ingenieure schließlich wieder Zugriff auf Teile der Kubernetes-Kontrollfläche und leiteten den Datenverkehr auf gesunde Cluster um, wodurch das System vollständig wiederhergestellt werden konnte.

Der Vorfall ereignete sich um 15:12 Uhr Pazifischer Standardzeit. Die Ingenieure hatten einen neuen Telemetrieservice zur Erfassung von Kubernetes (K8S)-Kontrollflächenmetriken bereitgestellt. Die Konfiguration dieses Dienstes war jedoch versehentlich zu weit gefasst, sodass auf jedem Knoten jedes Clusters gleichzeitig ressourcenintensive K8S-API-Operationen ausgeführt wurden. Dies führte schnell zum Absturz der API-Server, wodurch die meisten Cluster ihre K8S-Datenebene verloren.

Es ist erwähnenswert, dass die K8S-Datenebene zwar theoretisch unabhängig von der Kontrollfläche funktionieren kann, die DNS-Funktionalität jedoch von der Kontrollfläche abhängt, wodurch die Kommunikation zwischen den Diensten unterbrochen wurde. Bei Überlastung der API-Operationen wurde der Service-Discovery-Mechanismus beschädigt, was zum vollständigen Ausfall des Dienstes führte. Obwohl das Problem innerhalb von 3 Minuten lokalisiert wurde, führte der fehlende Zugriff der Ingenieure auf die Kontrollfläche zum Rollback des Dienstes zu einer Art „Teufelskreis“. Der Ausfall der Kontrollfläche verhinderte das Löschen des fehlerhaften Dienstes und damit die Wiederherstellung.

Die OpenAI-Ingenieure begannen daraufhin, verschiedene Methoden zur Wiederherstellung des Clusters zu untersuchen. Sie versuchten, die Clustergröße zu reduzieren, um die API-Last von K8S zu verringern, und blockierten den Zugriff auf die K8S-Management-API, damit sich die Server erholen konnten. Darüber hinaus erhöhten sie die Ressourcenzuweisung der K8S-API-Server, um Anfragen besser verarbeiten zu können. Nach einer Reihe von Versuchen erlangten die Ingenieure schließlich wieder die Kontrolle über die K8S-Kontrollfläche, konnten den fehlerhaften Dienst löschen und den Cluster schrittweise wiederherstellen.

In der Zwischenzeit leiteten die Ingenieure den Datenverkehr auf wiederhergestellte oder neu hinzugefügte gesunde Cluster um, um die Last auf anderen Clustern zu reduzieren. Da jedoch viele Dienste gleichzeitig wiederhergestellt werden wollten, führte dies zu einer Sättigung der Ressourcenbeschränkungen. Der Wiederherstellungsprozess erforderte zusätzliche manuelle Eingriffe, und die Wiederherstellung einiger Cluster dauerte länger. Durch diesen Vorfall kann OpenAI hoffentlich Lehren ziehen und vermeiden, in Zukunft wieder „ausgesperrt“ zu werden.

Detaillierter Bericht: https://status.openai.com/incidents/ctrsv3lwd797

Wichtigste Punkte:

🔧 Fehlerursache: Eine kleine Änderung am Telemetrieservice führte zu einer Überlastung der K8S-API und zum Ausfall des Dienstes.

🚪 Problem für die Ingenieure: Der Ausfall der Kontrollfläche verhinderte den Zugriff der Ingenieure und die Fehlerbehebung.

⏳ Wiederherstellungsprozess: Durch die Verkleinerung der Clustergröße und die Erhöhung der Ressourcen wurde der Dienst schließlich wiederhergestellt.