OpenAI 원격 측정 서비스, Kubernetes API 서버 과부하
OpenAI는 2024년 12월 11일 15시 12분에 원격 측정 서비스를 배포했습니다. 이 서비스는 대규모 클러스터에서 Kubernetes API 서버를 과부하시키며 DNS 서비스 검색을 중단시켰습니다.
원격 측정 배포로 인한 API 포화
새로운 서비스는 상세한 제어 평면 메트릭을 수집했습니다. 프로덕션 환경에서 각 노드는 클러스터 크기에 따라 확장되는 리소스 집약적 목록 작업을 실행했습니다. 수천 개의 노드가 동시에 이러한 작업을 수행하면서 API 서버가 과부하되었습니다.
과부하는 API 서버 포화로 나타났습니다. API 서버는 제대로 작동하지 않으며 DNS 기반 서비스 검색 메커니즘이 실패했습니다.
제어 평면 붕괴
OpenAI의 사전 배포 점검은 클러스터당 CPU 및 메모리 사용량을 측정했지만 API 서버 부하 평가를 놓쳤습니다. 원격 측정 서비스는 각 노드의 kubelet에 의해 생성된 인증 및 권한 부여 요청을 통해 API 서버의 부하를 증가시켰습니다.
인증 트래픽 급증으로 인해 API 서버가 과부하되었으며 다른 구성 요소는 계속 실행되었습니다. 컨테이너는 다시 시작되지 않았지만 DNS 손실로 인해 서비스가 서로의 이름을 확인할 수 없게 되었습니다.
더 넓은 산업 상황
OpenAI 사건은 산업에서 공통적인 문제를 강조합니다. 즉, 상세한 모니터링 및 원격 측정의 필요성과 시스템 성능에 대한 잠재적 영향의 균형을 맞추는 것입니다. Kubernetes 채택이 계속 증가함에 따라 기업은 대규모 배포를 위해 클러스터를 최적화하는 방법을 점점 더 찾고 있습니다. OpenAI의 경험은 새로운 서비스를 배포하기 전에 철저한 부하 테스트 및 평가의 중요성을 일깨워줍니다.
클라우드 네이티브 기술 및 컨테이너화에 대한 의존도가 높아짐에 따라 강력한 모니터링 및 원격 측정 솔루션에 대한 수요가 증가하고 있습니다. 최근 보고서에 따르면 클라우드 네이티브 애플리케이션에 대한 글로벌 시장은 2025년까지 5.5조 달러에 도달할 것으로 예상되며 CAGR은 22.5%입니다.
유사한 사고 이력
이것은 원격 측정 또는 모니터링 서비스로 인해 오류가 발생한 첫 번째 사례가 아닙니다. 과거에 다른 조직에서 유사한 사고가 발생했으며 종종 부적절한 테스트 또는 시스템 성능에 대한 가시성 부족으로 인해 발생했습니다.
이러한 사고를 연구함으로써 기업은 향후 유사한 오류를 방지하는 방법에 대한 귀중한 교훈을 배울 수 있습니다. 시스템 성능 및 용량 계획에 대한 철저한 이해는 현대 소프트웨어 시스템의 신뢰성 및 확장성을 보장하는 데 필수적입니다.
기술적 메커니즘
원격 측정 서비스의 구성으로 인해 각 클러스터의 모든 노드가 리소스 집약적 목록 작업을 실행하게 되었습니다. 이로 인해 Kubernetes API 서버에 대한 대규모 API 호출이 발생하여 포화 및 궁극적 실패로 이어졌습니다.
다운스트림 영향
이 사고는 OpenAI 및 더 넓은 산업에 중요한 영향을 미칩니다. 보다 강력한 부하 테스트 및 평가 절차의 필요성과 실시간으로 시스템 성능을 모니터링하는 것이 강조됩니다.
완화 전략 및 교훈
세 가지 주요 질문을 제기하는 심층 분석:
- 배포 전에 로드를 더 잘 평가할 수 있는 방법은 무엇입니까?
- 프로덕션 트래픽으로 canarying하는 것은 어떤 의미가 있습니까?
- 모니터링을 통해 제어 평면의 상태를 어떻게 감지할 수 있습니까?
완화 전략에는 각 노드가 API 호출을 발행하는 대신 중앙 집중식 집계기에서 메트릭을 가져오거나 클러스터 크기에 따라 요청 속도를 제한하는 것이 포함됩니다.