OpenAI 遭遇历史上最长中断故障,遥测服务故障引发此次问题

2024年12月12日,OpenAI经历了其历史上最长的一次服务中断之一。此次中断影响了OpenAI的多个核心产品和服务,包括AI聊天平台ChatGPT、视频生成器Sora以及面向开发者的API。中断从周三下午3点左右开始,持续了大约三个小时,直到所有服务才完全恢复。

问题根源

在周四晚些时候发布的事后分析中,OpenAI详细解释了导致这次中断的原因。公司表示,这次中断并不是由安全事件或最近的产品发布引起的,而是由于周三部署的一个新的遥测服务出现了问题。该遥测服务用于收集Kubernetes集群的性能指标,而Kubernetes是一个广泛使用的开源程序,帮助管理容器化应用程序。

具体问题
  • 资源密集型操作:新遥测服务的配置无意中引发了大量资源密集型的Kubernetes API操作,导致Kubernetes API服务器不堪重负。
  • Kubernetes控制平面瘫痪:由于API服务器过载,OpenAI的大多数大型Kubernetes集群中的Kubernetes控制平面(负责管理和协调容器的中央组件)陷入了瘫痪状态。
  • DNS解析资源受影响:Kubernetes操作依赖于DNS解析,即将IP地址转换为域名的服务。遥测服务的影响波及到了DNS解析资源,进一步加剧了问题的严重性。

复杂化的因素

OpenAI使用了DNS缓存,这是一种保存之前查找过的域名及其对应IP地址的技术。DNS缓存的存在使得问题更加复杂,因为它“延迟了可见性”,即问题的实际影响没有立即显现出来,导致遥测服务的推出继续进行,直到问题变得明显。

检测与修复

尽管OpenAI在客户最终受到影响之前的“几分钟”内就检测到了问题,但由于Kubernetes服务器已经不堪重负,修复过程变得非常缓慢。OpenAI写道:“这是多个系统和流程同时失败并意外交互的结果。我们的测试没有捕捉到这一变化对Kubernetes控制平面的影响,修复非常缓慢,因为锁定的效果。”

后续措施

为了防止类似事件在未来再次发生,OpenAI计划采取以下几项改进措施:

  1. 改进分阶段推出:OpenAI将更加谨慎地逐步推出新服务和功能,确保每次变更的影响范围可控,并能够在早期发现问题。
  2. 更好的基础设施监控:公司将加强对基础设施变化的监控,特别是对Kubernetes控制平面的监控,以便更早发现潜在问题。
  3. 确保工程师访问权限:OpenAI将建立新的机制,确保公司在任何情况下都能快速访问其Kubernetes API服务器,以便在紧急情况下迅速实施修复。

客户影响与道歉

OpenAI在事后分析中表示,这次事件对所有客户造成了影响,包括ChatGPT用户、开发者以及依赖OpenAI产品的企业。公司承认自己“没有达到自己的期望”,并向所有受影响的用户表达了歉意。

OpenAI写道:“我们对这次事件对所有客户造成的影响表示歉意——从ChatGPT用户到开发者和依赖OpenAI产品的企业。我们没有达到自己的期望。”