一个馒头引发的血案:OpenAI全球宕机原因曝光!

一个监控服务的部署,让OpenAI的全球服务瘫痪了!

这次事故的根本原因终于水落石出:一个用于收集Kubernetes指标的监控服务成了”罪魁祸首”。

事故的导火索

太平洋标准时间下午3:12,OpenAI部署了一个新的遥测服务,目的是为了提升集群级可观测性

这本是一个提高系统可靠性的举措,谁知却引发了一连串的连锁反应:

  • 监控服务定期从所有节点收集指标

  • 这些指标采集操作触发了资源密集型的Kubernetes操作

  • 控制平面因此崩溃

  • DNS服务随之失效

  • 最终导致服务完全不可用

TDM (e/λ)(@cto_junior) 对此事件进行了专业解读:

我理解OpenAI的困境,Prometheus指标导出器的部署有时确实很棘手。简单来说,他们部署了一个指标服务,这个服务会定期从所有节点轮询指标。其中一些指标调用了资源密集型的k8s操作,导致控制平面崩溃,进而影响DNS正常工作,最终导致服务不可用。

专家观点

Loki(@chillgates_) 则从技术角度提出了一个有趣的观点:

最可能是忘记为指标命名空间设置资源请求/限制这样的小问题。k8s API本身具有足够的容错性和分布式特性,无论用户空间的需求如何,它都不太可能失败。

这提醒我们:在云原生架构中,即使是最基础的配置疏忽也可能引发灾难性后果

深层思考

这次事故揭示了现代云服务架构的一个重要特点:看似简单的监控部署,也可能成为系统稳定性的重大威胁

OpenAI在全球范围内运营着数百个Kubernetes集群,这些集群分为:

  • 控制平面:负责集群管理

  • 数据平面:提供实际工作负载(如模型推理)

在追求更好的可观测性时,我们需要在监控的全面性系统的稳定性之间找到平衡点。

这次事故也给所有运营大规模分布式系统的团队敲响了警钟:

再小的变更也要谨慎对待,监控系统本身也需要被监控

不过,从这也可以看出:

OpenAI 内部应该还没实现AGI。

(文:AGI Hunt)

欢迎分享

发表评论