Incident Library
적용된 필터 원인소프트웨어 결함증상서비스 중단도메인쿠버네티스모두 풀기검색어 없이 필터만 적용한 목록입니다. 최근 사례부터입니다.
추천 필터 검색하면 검색어에서 찾은 분류 값이 여기에 나옵니다.

그래프

  • 원인
  • 구성 요소
  • 증상
  • 기여 요인
  • 사례

사례11건

11건 중 1~5번째

  1. 증상

    2025-05-11 0시부터 8시 사이, 중부유럽 서머타임인 CEST 기준으로 ZenML Pro 워크스페이스 서버에 모두 접속할 수 없었다.

    촉발

    EKS 모듈을 업그레이드하면서 Terraform 으로 AWS KMS 시크릿 암호화를 켰다. 이 작업이 문서에 없는 버그에 걸려 워커 노드의 IAM 권한이 빠졌다.

    원인
    구성 요소
    기여 요인
    감지

    팀은 밤새 돌게 둔 업그레이드를 이어서 보려고 5월 11일 06:00 에 클러스터를 다시 보다가 비정상 상태를 발견했다.

    조치
    • 영향받은 EKS 노드 그룹을 올바른 IAM 권한과 설정으로 다시 만들었다.
    • 영향받은 모든 ZenML Pro 환경에서 서비스 접근을 복구했다.
    후속 조치
    • EKS 와 VPC Terraform 모듈을 모두 현재 지원되는 버전으로 올렸다.
    • 계획한 EKS 클러스터 업그레이드를 마쳤다.
    • 재발을 막도록 쿠버네티스와 인프라의 정기 업그레이드 전략을 검토한다.
    교훈

    팀은 규모가 훨씬 작은 스테이징 클러스터에서 업그레이드가 성공한 것을 보고 운영에서 같은 변경의 위험을 낮게 봤다. 쿠버네티스와 모듈 버전을 건너뛰는 사이 업그레이드 복잡도가 쌓여, 업그레이드 한 번에 많은 변경이 한꺼번에 실렸다.

  2. 증상

    2025-03-05 01:00 UTC 무렵부터 일부 고객의 LKE 클러스터가 IP ACL 을 켠 상태에서 오토스케일링에 실패했고, 서비스 장애로 이어졌다.

    촉발

    가장 최근에 배포한 LKE 소프트웨어 릴리스에 결함이 있었다.

    원인
    구성 요소
    기여 요인
    –
    감지

    고객 쪽 문제는 01:00 UTC 무렵 시작됐고, 상태 페이지의 첫 조사 공지는 06:49 UTC 에 올라왔다.

    조치
    • 임시 조치로 게이트웨이 파드를 재시작했지만 잠깐만 효과가 있었다.
    • 문제가 된 소프트웨어 릴리스를 롤백했고, 15:00 UTC 무렵 영향받은 모든 클러스터에서 롤백을 마쳤다.
    후속 조치
    • 근본 원인을 계속 조사하고 알맞은 재발 방지 조치를 한다.
    교훈

    결함은 IP ACL 을 켠 클러스터에서만 문제를 일으켰고, autoscaler 가 노드를 추가하려 할 때 드러났다. 게이트웨이 파드 재시작은 효과가 오래가지 않았고, 릴리스를 롤백하자 장애가 끝났다.

  3. 증상

    2025년 3월 3일 14:15:34부터 홈랩 쿠버네티스에 올린 서비스에 접속되지 않았다. 운영자가 서비스에 들어가려다 직접 알아챘고, 알아채기까지 3시간이 걸렸다.

    촉발

    정전 때문에 마스터 노드가 재부팅됐다.

    원인
    구성 요소
    기여 요인
    감지

    운영자가 서비스에 접속하려다 직접 알아챘다. 자동 알림이 없어서 알아채기까지 3시간이 걸렸다.

    조치
    • 원격 접속이 되지 않아 모니터를 연결해 부팅 로그를 보고 커널 패닉을 확인했다.
    • 이전 커널 버전으로 부팅해 시스템을 되살렸다.
    • sudo apt-get remove --purge '^nvidia-.*' 로 망가진 패키지를 지우고 sudo dpkg --configure -a 로 패키지 설정 문제를 고쳤다.
    • dpkg -l | grep -v ^ii 로 남은 망가진 패키지를 찾아 sudo apt-get remove --purge <package_name> 으로 하나씩 지웠다.
    • sudo apt-get install -f 로 빠진 의존성을 채우고 sudo apt-get install --reinstall linux-headers-$(uname -r) 로 커널 헤더를 다시 설치했다.
    • 머신을 재부팅해 커널 패닉이 사라진 것을 확인했다.
    후속 조치
    • GPU 드라이버 설치가 완전히 성공했는지 확인하고, 오류가 나면 바로 변경을 되돌린다.
    • 단일 장애 지점을 없애도록 클러스터를 고가용성 구성으로 옮긴다.
    • 고가용성 구성에서 Kube-API 를 로드 밸런서 뒤에 둔다.
    • 장애를 기록하고 해결 과정을 추적할 티켓 시스템을 만든다.
    • 미리 정해 둔 문제 해결 절차를 만들어 홈랩 장애 대응 시간을 줄인다.
    • Prometheus 와 Grafana 같은 인프라 모니터링을 넣어 문제를 미리 잡는다.
    • 주요 서비스에 HTTP, TCP 검사를 거는 블랙박스 모니터링을 넣어 쿠버네티스 클러스터 밖에서도 장애를 잡는다.
    교훈

    드라이버 빌드 실패를 그대로 두면 몇 주 뒤 재부팅 때 터질 수 있다. 자동 알림이 없어서 발견과 복구가 늦었다. 마스터 노드가 하나뿐이라 노드 하나의 고장이 클러스터 전체 장애가 됐다. 원인을 찾은 뒤에는 비교적 간단히 고쳤고, 데이터 손실은 없었다.

  4. 증상

    2022년 6월 2일 10:00 CET 부터 mybinder.org 가 새 파드를 하나도 띄우지 못했다. 21:00 에 사용자가 Matrix 채널에 Binder 장애를 알렸고, 팀원이 살펴보니 몇 시간째 파드가 뜨지 않고 있었다.

    원인
    구성 요소
    기여 요인
    감지

    21:00 에 사용자가 Matrix 채널에 Binder 장애를 알렸고, 팀은 이 채널에서 소식을 받았다. 이를 본 팀원이 확인해 보니 몇 시간째 파드가 뜨지 않고 있었다. 큰 장애를 알아채기까지 11시간이 걸렸다.

    조치
    • 21:24 에 gke-resource-quotas 를 지웠고, 곧바로 배포가 파드를 다시 만들 수 있게 돼 launch 성공률이 금방 100%로 돌아왔다.
    후속 조치
    • 가동 시간 감시와 알림 문제를 이슈 https://github.com/jupyterhub/mybinder.org-deploy/issues/611 에서 다룬다.
    교훈

    Binder 에 큰 장애가 났다는 것을 알아채기까지 11시간이 걸렸다. resource quota 객체를 지우자 시스템이 아주 빨리 바로잡혔고, 지울 객체를 알고 나면 고치는 일은 비교적 간단했다. 변경할 기술과 권한을 가진 팀원이 현지 시각 밤 11시에 마침 컴퓨터 앞에 있었던 것은 운이었다.

  5. 증상

    2021-09-06 08:00 UTC 에 Kubernetes 의 모든 서비스가 404 를 내기 시작했다. 30분 전인 07:30 에는 노드를 자동으로 교체하는 롤오버가 시작됐다.

    촉발

    2021-09-01 11:34 UTC 에 형식이 잘못된 IngressRoute 가 Kubernetes 에 적용됐다. 이 매니페스트는 2.5 미만 Traefik v2 의 버그를 건드렸지만, 버그는 Traefik v2 파드가 모두 재시작된 뒤에야 드러났다. 2021-09-06 07:30 에 자동 노드 롤오버가 시작됐고, 08:00 에 모든 서비스가 404 를 냈다.

    원인
    구성 요소
    기여 요인
    감지

    08:00 UTC 에 모든 서비스가 404 를 내기 시작했고 08:05 에 원인 조사를 시작했다. 감지까지 5분이 걸렸다.

    조치
    • ALB 헬스체크 경로를 바꿔 08:15 에 ALB 대상을 healthy 로 되돌렸지만 404 는 멈추지 않았다.
    • 08:50 에 주 인그레스 컨트롤러를 Traefik v1 으로 되돌리기로 하고, 09:00 에 손으로 롤백했다.
    • 09:10 에 잘못된 IngressRoute 를 손으로 지워 근본 원인과 Traefik v2 버그를 확인했다.
    • 09:20 에 바꾼 내용을 업스트림에도 반영했다.
    후속 조치
    • 버그가 고쳐진 Traefik v2.5 로 올리고 버그가 사라졌는지 확인한다.
    • Traefik v2 헬스체크 경로를 더 믿을 만한 경로로 바꾼다.
    • 인그레스 컨트롤러를 클러스터 바깥에서 확인하는 liveness 점검을 둔다.
    • 워크로드를 나눠 장애가 번지는 범위를 줄이는 방안을 검토한다.
    • Traefik v2 API 에서 짧은 시간에 많은 변경이 일어나는지 모니터링하는 방법을 알아본다.
    • 노드 롤오버 중과 롤오버 뒤에 스모크 테스트를 돌리는 방법을 알아본다.
    교훈

    Traefik v2 는 오류를 드러내지 않고 실패해서 조사를 ALB 쪽으로 잘못 이끌었다. 공식 API 스키마도 잘못된 매니페스트 적용을 막지 못했다. 팀은 대응 과정에서 장애 관리자를 정했다면 도움이 됐을 것으로 봤다. 그리고 워룸 회의를 녹화하고, 대응에 참여하지 않는 사람은 글로만 제안하고, 일지를 남기자고 정리했다. 대응 초반에 각자의 생각과 직감을 짧게 나누는 시간도 갖자고 했다.

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

이 11건에서 가장 많이 나오는 구성 요소: 쿠버네티스 API 서버, etcd. kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이런 틈을 점검합니다. 점검 항목의 근거는 이 라이브러리와 같은 공개 보고서입니다.

원인별1

소프트웨어 결함11건

  1. IL-0078 EKS 업그레이드 중 Terraform 으로 KMS 시크릿 암호화를 켜자 워커 노드의 IAM 권한이 빠져 운영 ZenML Pro 워크스페이스에 모두 접속할 수 없게 됐다
    ZenML2025
  2. IL-0157 IP ACL 을 켠 LKE 클러스터에 새 노드가 붙지 못해 오토스케일링이 실패했다
    Linode2025
  3. IL-0138 nvidia-dkms-390 드라이버 빌드 실패로 망가진 커널 헤더가 몇 주 동안 방치됐다가, 정전 뒤 재부팅하자 하나뿐인 마스터 노드가 커널 패닉에 빠져 홈랩 쿠버네티스 클러스터가 6일 동안 멈췄다.
  4. IL-0403 mybinder.org 의 prod hub 가 실제로는 넘지 않은 파드 quota 를 넘었다는 오류 때문에 새 파드를 만들지 못했다
  5. IL-0106 잘못된 IngressRoute 매니페스트가 Traefik v2 버그를 건드려 Traefik 파드가 모두 재시작된 뒤 Kubernetes 의 모든 서비스가 404 를 냈다
    DFDS2021
  6. IL-0196 Redis Operator 로 레플리카를 늘리면서 메모리 한도를 낮추자 데이터를 가진 유일한 Redis 파드가 재시작됐고, Sentinel 이 빈 레플리카를 마스터로 올려 데이터가 모두 지워졌다.
    Palark2020
  7. IL-0051 외부 업체의 로그 클라이언트가 새 컨테이너가 뜰 때마다 파일 디스크립터를 다시 열고 이전 것을 닫지 않아 쿠버네티스 노드가 too many open files 로 내려갔다
  8. IL-0074 워커 노드가 잇달아 Not Ready 에 빠지고 네트워크와 DNS 실패로 사이드카가 죽으면서, AirMap 플랫폼의 모든 서비스가 다섯 시간 동안 응답하지 않았다.
    AirMap2018
  9. IL-0504 mybinder.org 에서 사용자 파드가 지워지지 않고 쌓여 클러스터가 가득 차고 실행이 약 5시간 동안 실패했다
  10. IL-0072 etcd 쓰기 지연으로 API 서버가 오래된 데이터를 읽어 클러스터 상태가 두 가지로 번갈아 보였고, 주 운영 클러스터 전체가 약 4시간 멈췄다
  11. IL-0003 etcd 클러스터 재구성 뒤 쿠버네티스 버그로 linkerd 가 서비스 위치 갱신을 받지 못했고, linkerd 를 모두 재시작하자 엔드포인트가 없는 서비스를 파싱하지 못하는 오류가 드러나 플랫폼 전체가 멈췄다
    Monzo2017