Incident Library

IL-0514 Python Software Foundation · 2022-07-28kubernetesdatabase

클라우드 사업자의 노드 교체 뒤 Consul 이 리더를 뽑지 못하고 Vault 가 봉인된 채 남아 PyPI 백엔드가 7분 동안 응답하지 않았다

2022-07-28 17:24 UTC 부터 PyPI 가 도는 쿠버네티스 클러스터의 클라우드 인스턴스 여러 대를 사업자가 알 수 없는 장애로 자동 교체했고, 18:20 UTC 에는 모든 인스턴스가 교체되어 정상이었다. 교체로 많은 파드가 재배치되며 클러스터 안의 Consul 과 Vault 가 새 노드에서 재시작됐다. 18:23 UTC 에 Vault 봉인 해제가 필요하다는 첫 알림이 왔고, 살펴보니 Vault 컨테이너는 모두 쓸 수 없었고 Consul 은 새 리더를 뽑지 못했다.

Consul 파드 하나가 Terminating 상태에 멈춰 있어서 Consul 서버 탐색 기능이 선출에 서버 하나가 더 들어오기를 기다렸다. PyPI 애플리케이션 서버를 배포하고 보호하는 관리 계층인 Consul 과 Vault 가 내려가 있자, 재배치된 PyPI 컨테이너가 시작하지 못했고 18:46 UTC 에 PyPI 가 응답하지 않게 됐다. 대응한 인프라 팀원이 멈춘 파드를 강제로 지워 다시 만들어지게 하자 Consul 이 회복됐고, 이어 새 Vault 컨테이너의 봉인을 풀었다. PyPI 백엔드 장애는 18:46 UTC 부터 18:53 UTC 까지였다.

심각도
–
영향 범위
PyPI backends
영향 사용자
–
지역
–
감지까지
–
복구까지
7m

증상

18:23 UTC 에 PSF 인프라 팀에 Vault 컨테이너가 적어도 하나 내려가 있고 다시 올라오려면 봉인 해제가 필요하다는 첫 알림이 왔다. 살펴보니 클러스터의 Vault 컨테이너는 모두 쓸 수 없었고 Consul 컨테이너는 새 리더를 뽑지 못하고 있었다.

앞서 17:24 UTC 부터 클라우드 사업자가 알 수 없는 장애를 이유로 PyPI 가 도는 쿠버네티스 클러스터의 클라우드 인스턴스 여러 대를 자동으로 교체했다. 18:20 UTC 에는 모든 인스턴스가 교체되어 클러스터의 정상 노드가 됐지만, 이 과정에서 많은 파드가 재배치되며 Consul 과 Vault 가 새 노드에서 재시작됐다.

Consul 을 되살리는 일이 꼬였다. Consul 파드 하나가 Terminating 상태에 멈춰 있었고, Consul 서버 탐색 기능이 선출에 서버 하나가 더 참여하기를 기다리며 멈췄다.

Consul 과 Vault 가 내려가 있는 동안 PyPI 애플리케이션을 띄우려는 새 컨테이너는 실패했다. 노드 교체로 재배치된 컨테이너가 시작하지 못했고, 쿠버네티스가 정해진 개수를 맞추려고 컨테이너를 계속 재배치하면서 18:46 UTC 에 PyPI 가 응답하지 않게 됐다.

증상 서비스 중단파드 Terminating 정체

원인

촉발
2022-07-28 17:24 UTC 부터 클라우드 사업자가 알 수 없는 장애를 이유로 PyPI 가 도는 쿠버네티스 클러스터의 클라우드 인스턴스 여러 대를 자동으로 교체했다.

감지

18:23 UTC 에 PSF 인프라 팀에 Vault 컨테이너가 적어도 하나 내려가 있고 봉인 해제가 필요하다는 알림이 왔다.

조치

후속 조치

–

교훈

–

출처

관련 사례

내 클러스터에도 있는지 확인하기

kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이 사례와 같은 상태를 점검합니다. 이 사례의 구성 요소: 코디네이션 키-값 저장소, 시크릿 저장소. 점검 항목의 근거는 이 사례 같은 공개 보고서입니다.

AI 도구와 스크립트용

API 는 키가 필요 없습니다. MCP 서버는 search_incidents, get_incident, list_incidents, get_topic, vocab 도구를 내놓습니다. 사용법은 API 와 MCP.