蓝点网 2024年12月16日
OpenAI发布12月11日ChatGPT宕机报告:集群出现死循环把工程师挡在门外
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

OpenAI的ChatGPT和Sora等服务在12月11日遭遇长达4小时10分钟的宕机,起因是部署新的遥测服务时,无意中导致每个集群节点执行资源密集型的K8S API操作,API服务器不堪重负宕机,导致服务中断。虽然问题在3分钟内被定位,但由于控制面瘫痪,工程师无法连接进行回滚操作,陷入死循环。最终通过缩小集群规模、阻止管理API访问、扩大API服务器资源等方式,工程师重新获得控制权并回滚服务。此次事故暴露了OpenAI在处理死循环问题上的不足,也提醒业界需要重视系统架构的健壮性,确保工程师在紧急情况下能够快速接入并解决问题。

🛠️ OpenAI宕机源于部署新的遥测服务,该服务导致每个K8S集群节点执行资源密集型API操作,最终压垮API服务器。

🔗 K8S控制面宕机导致工程师无法连接,无法回滚服务,形成死循环,暴露了系统架构的脆弱性。

🚀 最终通过缩小集群规模、阻止管理API访问、扩大API服务器资源等组合手段,工程师才重新获得控制权,恢复了服务。

12 月 11 日 OpenAI ChatGPT 和 Sora 等服务出现长达 4 小时 10 分钟的宕机,此次宕机只是个小更改导致的,而且这个小更改仅在部署 3 分钟后就被发现出现问题,按理说这么快发现问题应该是很容易解决的。

不过 OpenAI 也出现了和某些公司相同的错误:服务挂了后把工程师也给锁门外了,即工程师无法正常连接控制面进行问题处理。

OpenAI 采用的后端服务架构:

OpenAI 的后端服务都运行在全球数百个 Kubernetes 集群中,其中有个负责集群管理的控制面和和数据面,OpenAI 向用户提供服务的是 K8S 数据面。

接下来是事故大概情况:

12 月 11 日太平洋标准时间下午 3:12,工程师部署新的遥测服务来收集 K8S 控制面指标,由于遥测服务覆盖范围非常广,因此这个新服务配置无意中导致每个集群上的每个节点都执行资源密集型的 K8S API 操作。

由于数千个节点同时执行资源密集型的 APi 操作,导致 API 服务器不堪重负而宕机,这导致大多数集群中的 K8S 数据面瘫痪无法再提供服务。

K8S 数据面很大程度上确实可以独立于控制面运行,但 DNS 依赖于控制面,如果没有 K8S 控制面,那么服务就不知道如何相互联系。

而不堪重负的 API 操作破坏了基于 DNS 的服务发现,也就是导致服务无法相互连接,那为什么 3 分钟就成功定位问题但要花费大量时间才能解决呢?

原因在于要回滚刚刚的遥测服务需要先到 K8S 控制面上把旧服务删除,但现在控制面已经挂了因此工程师们也无法成功连接,这就造成了死循环,这种死循环在其他公司的事故中也挺常见,没想到 OpenAI 也存在类似的问题。

最终的处理方式:

OpenAI 工程师探索快速恢复集群的不同方法,包括缩小集群规模减少对 K8S 的 API 负载、阻止对用于管理的 K8S API 访问让服务器能够恢复、扩大 K8S API 服务器增加可用资源来处理请求。

最终这三项工作同时进行让工程师们重新获得控制权,也就是能够重新连接 K8S 控制面并删除有问题的服务,一旦重新连接就可以回滚遥测服务更改逐渐恢复集群。

期间工程师们还将流量转移到已经恢复的集群或新增的健康的集群中,这样继续降低其他问题集群的负载然后进行处理,但由于许多服务试图同时下载资源导致资源限制饱和和并需要额外的手动干预,因此一些集群花费了大量时间才完成恢复。

经过这次事故相信 OpenAI 应该能学到解决死循环问题,至少下次再发生类似情况是可以快速连接解决问题,而不是将工程师锁在门外。

via OpenAI Status

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

OpenAI 宕机 Kubernetes K8S 系统架构
相关文章