Incident Library

IL-0513 Python Software Foundation · 2022-10-24kubernetesawsnetworking

쿠버네티스 노드 순차 재시작 중 Ingress 가 관리하는 ELB 의 HTTPS 리스너가 꺼져 PyPI 백엔드에 HTTPS 로 닿지 못했다

PyPI 서비스는 쿠버네티스 클러스터에서 Deployment 로 돌고, AWS Elastic Load Balancer 통합을 쓰는 Ingress 로 외부에 노출된다. 이 로드 밸런서가 쓰는 TLS 인증서는 Amazon Certificate Manager, 곧 ACM 이 관리한다. 클러스터를 처음 배포할 때 Ingress 가 관리하는 ELB 는 기존 ACM 인증서를 쓰도록 설정됐다. 지난번 순차 업그레이드 뒤에 PyPI 의 Ingress 에 호스트 이름이 하나 더 필요해졌고, PyPI 관리자들이 그 이름을 담은 새 ACM 인증서를 만들어 ELB 가 새 인증서를 쓰도록 바꿨다. 이 변경은 Ingress 설정에는 반영되지 않았다.

2022-10-24 정기 유지 보수로 모든 노드를 순차 재시작하던 중, 새 쿠버네티스 API 서버가 올라오며 Ingress 설정을 다시 검증하고 갱신했다. 새 API 서버는 Ingress 설정이 가리키는 이전 ACM 인증서를 찾지 못했고, PyPI 와 관련 서비스를 내보내는 Ingress 의 HTTPS 리스너를 껐다. 14:43 UTC 부터 15:03 UTC 까지 PyPI 백엔드에 HTTPS 로 닿을 수 없어 CDN 의 페이지 가져오기, uploads.pypi.org 업로드, 옛 파일 리디렉션 서비스가 멈췄다. 원인을 찾은 PyPI 관리자들이 Ingress 설정을 새 ACM 인증서로 바꾸자 쿠버네티스가 HTTPS 리스너를 되살렸고 모든 서비스가 돌아왔다.

심각도
–
영향 범위
PyPI backends over HTTPS: CDN page fetches, uploads to uploads.pypi.org and the legacy file redirect service
영향 사용자
–
지역
–
감지까지
–
복구까지
20m

증상

2022-10-24 14:43 UTC 부터 15:03 UTC 까지 PyPI 백엔드에 HTTPS 로 접속할 수 없었다. CDN 이 페이지를 가져오지 못했고, uploads.pypi.org 로 올리기가 막혔으며, 옛 파일 리디렉션 서비스도 끊겼다.

상태 페이지는 14:51 UTC 에 PyPI 와 관련 서비스가 도는 백엔드에 큰 장애가 났다고 알렸다. 영향을 받은 항목은 pypi.org 의 Backends, files.pythonhosted.org 의 Redirects 와 Redirects Backends 였다.

장애는 정기 유지 보수로 클러스터의 모든 노드를 순차 재시작하던 중에 났다. 새 쿠버네티스 API 서버가 올라오면서 PyPI 와 관련 서비스를 내보내는 Ingress 에서 ELB 의 HTTPS 리스너를 껐다.

증상 서비스 중단

원인

촉발
업그레이드와 새 설정을 모든 노드에 나눠 주려고 쿠버네티스 클러스터의 모든 노드를 순차 재시작했다. 새 쿠버네티스 API 서버가 올라오면서 기존에 정의한 Ingress 설정을 다시 검증하고 갱신했다.

감지

–

조치

후속 조치

교훈

자원을 모두 쿠버네티스 API 로 관리하면 원하는 상태와 실제 상태가 어긋나는 일이 줄고, 그런 어긋남이 다음 유지 보수 때 장애로 드러날 가능성도 줄어든다고 PSF 인프라 팀은 정리했다.

출처

관련 사례

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

kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이 사례와 같은 상태를 점검합니다. 이 사례의 구성 요소: 인그레스 컨트롤러, 클라우드 로드 밸런서. 점검 항목의 근거는 이 사례 같은 공개 보고서입니다.

AI 도구와 스크립트용

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