IL-0003 Monzo · 2017-10-27kubernetesaws
앞서 한 etcd 구성 변경 때문에 API 서버 안의 쿠버네티스 클라이언트가 타임아웃을 내고 있었고, 그래서 linkerd 라우팅 계층이 엔드포인트 갱신을 못 받고 있었어요. 새로 배포한 서비스로는 트래픽이 가지 않았어요. 좋은 뜻으로 linkerd 인스턴스를 전부 재시작하자 플랫폼 전체가 한꺼번에 라우팅을 잃었고, 엔드포인트가 없는 서비스 객체가 당시 linkerd 버전의 파싱 버그를 건드렸어요. API 서버를 재시작하고, 파싱이 고쳐진 linkerd 로 앞으로 나아가고, 빈 서비스를 지우자 복구됐어요. 장애는 한 시간 반쯤 이어졌어요.
배포 직후 결제 서비스로 가는 요청이 전부 실패했고 롤백해도 그대로였어요. 한 시간 안에 서비스 사이의 트래픽이 플랫폼 전체에서 멈췄고 앱, 잔액, 카드 결제가 모두 영향을 받았어요.
배포 몇 분 뒤에 첫 실패를 알아챘어요. 자동 경보 대부분은 한 시간 뒤 플랫폼이 이미 내려간 다음에야 울렸어요.
큰 분산 시스템의 장애는 진단이 어렵고, 좋은 뜻의 수동 조치가 장애를 키울 수 있어요. 동적인 네트워크에서는 배포와 요청 라우팅 계층을 믿을 수 있어야 해요.
–