OpenAI-Telemetrie-Dienst überlastet Kubernetes-API-Server
OpenAI setzte am 11. Dezember 2024 um 15:12 Uhr PST einen Telemetrie-Dienst ein. Der Rollout überlastete Kubernetes-API-Server in großen Clustern und ließ die DNS-Dienstsuche zusammenbrechen.
Der Telemetrie-Konfiguration verursachte, dass jeder Knoten in Clustern von Tausenden teure API-Aufrufe ausführte. Diese Aufrufe sättigten die Kubernetes-API-Server und brachen den DNS-Cache, den Pods verwenden, um einander zu lokalisieren.
Telemetry-Rollout löst API-Sättigung aus
Der neue Dienst sammelte detaillierte Metriken der Steuerungsebene. In der Produktion führte jeder Knoten ressourcenintensive Listenoperationen aus, die mit der Clustergröße skalierten. Als Tausende von Knoten diese Operationen gleichzeitig ausführten, wurden die API-Server überfordert.
Die Überlastung manifestierte sich als API-Server-Sättigung. Die API-Server funktionierten nicht mehr ordnungsgemäß, und der DNS-basierte Dienstsuche-Mechanismus schlug fehl.
Zusammenbruch der Steuerungsebene
OpenAIs Vorab-Checks maßen CPU- und Speichernutzung pro Cluster, übersahen jedoch die Bewertung der API-Server-Last. Der Telemetrie-Dienst erhöhte die Last auf API-Servern durch Authentifizierungs- und Autorisierungsanfragen, die von kubelet auf jedem Knoten generiert wurden.
Der plötzliche Anstieg des Auth-Verkehrs belastete den API-Server, während andere Komponenten weiterhin liefen. Container restarteten nicht, aber der Verlust von DNS bedeutete, dass Dienste nicht mehr die Namen voneinander auflösen konnten.
Breiterer Branchenkontext
Der OpenAI-Vorfall unterstreicht eine häufige Herausforderung in der Branche: das Gleichgewicht zwischen der Notwendigkeit detaillierter Überwachung und Telemetrie einerseits und der potenziellen Auswirkung auf die Systemleistung andererseits. Da die Kubernetes-Adoption weiter wächst, suchen Unternehmen zunehmend nach Wegen, ihre Cluster für groß angelegte Deployments zu optimieren. OpenAIs Erfahrung dient als Erinnerung an die Bedeutung gründlicher Lasttests und Bewertungen vor der Bereitstellung neuer Dienste.
Geschichte ähnlicher Vorfälle
Dies ist nicht der erste Vorfall, bei dem ein Unternehmen einen Ausfall aufgrund eines Telemetrie- oder Überwachungsdienstes erlebte. In der Vergangenheit traten ähnliche Vorfälle bei anderen Organisationen auf, oft aufgrund unzureichender Tests oder mangelnder Sichtbarkeit in die Systemleistung.
Technische Mechanismen
Die Konfiguration des Telemetrie-Dienstes verursachte, dass jeder Knoten in jedem Cluster ressourcenintensive Listenoperationen ausführte. Dies führte zu einer großen Anzahl von API-Aufrufen an die Kubernetes-API-Server, was zu Sättigung und schließlich zu einem Ausfall führte.
Abhilfestrategien und Lektionen
Eine eingehende Analyse wirft drei wichtige Fragen auf:
- Wie könnte die Last vor der Bereitstellung besser bewertet werden?
- Welche Auswirkungen hat dies auf die Canarisierung mit Produktionsverkehr?
- Wie kann die Überwachung die Gesundheit der Steuerungsebene messen?
Abhilfestrategien umfassen das Ziehen von Metriken von einem zentralen Aggregator, anstatt dass jeder Knoten API-Aufrufe ausführt, oder das Drosseln der Anfrage rate basierend auf der Clustergröße.