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

사례2건

2건 중 1~2번째

  1. 증상

    2026-05-08 15:15 UTC 에 상태 페이지에 공지가 올라왔다. 일부 고객이 컨트롤 플레인에 연결하지 못하고 쿠버네티스 기능이 떨어질 수 있다는 내용이었다. 영향을 받은 곳은 DE/TXL, DE/FRA, DE/FRA/2 의 Managed Kubernetes 였다.

    촉발

    새 Managed Kubernetes 개발 클러스터를 등록하는 정기 내부 작업에서 onboarding operator 를 제외 목록에서 빼는 변경이 들어가자 곧바로 배포가 시작되었다. 이때 operator 의 대상 범위를 정하는 설정 파일은 병합 충돌로 배포 브랜치에 들어가지 못한 상태였다.

    원인
    구성 요소
    기여 요인
    조치
    • onboarding operator 를 고쳐, 네임스페이스 설정이 명시되어 있어야만 클러스터에 작업하게 했다. 이제 operator 는 기본 설정만으로는 cluster-api 기반 클러스터에서 범위 없이 돌지 못한다.
    • 필요한 설정 파일이 없으면 배포가 실패하도록 배포 시스템을 다시 구성했다. 전에는 설정이 덜 갖춰져도 배포가 조용히 진행되었다.
    • 영향을 받은 리소스에서 찾아낸 변경을 되돌리는 롤백을 마쳤고, 남은 불일치가 있는지 리소스를 점검했다.
    • 복구 스크립트를 만들어 스테이징에서 검증한 뒤 운영의 모든 영향 클러스터에 돌렸고, 2026-05-15 까지 의도하지 않은 설치와 변경을 모두 지웠다.
    후속 조치
    • 배포를 시작하기 전에 필요한 설정 파일이 모두 대상 브랜치에 전파되었는지 확인하는 필수 검증 단계를 CI/CD 파이프라인에 넣는다. 목표는 2026년 3분기다.
    • 운영 시스템을 건드리는 모든 배포는 변경 크기와 상관없이 추가 동료 검토와 변경 관리 승인을 반드시 받게 한다. 이 절차는 기존 Change Approval Board 검토에 더해진다. 목표는 2026년 3분기다.
    • 장애 뒤 복구 작업의 진행 상황을 영향을 받은 고객마다 제때 알릴 수 있도록 장애 커뮤니케이션 절차를 고친다. 목표는 2026년 3분기다.
    교훈

    클러스터 구성이 의도하지 않게 바뀐 것은 내부 작업이 고객 환경에 영향을 주지 못하게 막아야 할 통제가 실패했기 때문이다. 정리 작업 동안 영향을 받은 고객에게 진행 상황을 제대로 알리지 않아 불확실성이 더 커졌다.

  2. 증상

    2023-01-11 14:22, Cloud Platform 팀원 한 명이 DockerHub 로그인이 실패하는 오류를 발견했다.

    촉발

    LastPass 대응 작업의 하나로 DockerHub 비밀번호를 바꿨는데, EKS 클러스터 노드와 Concourse 는 예전 비밀번호로 계속 로그인하고 있었다.

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

    14:22 에 Cloud Platform 팀원이 DockerHub 로그인 실패 오류를 직접 발견했다. 14:52 에는 Kuberhealthy 데몬셋 점검에서 클러스터도 이미지를 받지 못한다는 것이 드러났고, 14:54 에 사용자 보고가 들어왔다. 장애 선언은 15:17 이었다.

    조치
    • DockerHub 비밀번호를 EKS 클러스터 노드와 Concourse 가 아직 쓰던 예전 값으로 되돌렸다.
    • 보고한 사용자에게 물어 파드가 배포되는 것을 확인했고, 클러스터가 다시 이미지를 받는 것도 확인했다.
    후속 조치
    • DockerHub 사용자 이름과 비밀번호 대신 Cloud Platform 전용으로 만든 DockerHub 토큰을 쓰도록 바꿨다.
    • 업무 시간 밖에 DockerHub 자격 증명을 새 값으로 바꾸고 노드를 차례로 교체한다.
    교훈

    이 글은 교훈을 따로 적지 않았다. 후속 조치로는 DockerHub 사용자 이름과 비밀번호 대신 Cloud Platform 전용으로 만든 DockerHub 토큰을 쓰도록 바꿨다.

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

이 2건에서 가장 많이 나오는 구성 요소: CI 시스템, 컨테이너 레지스트리와 자격 증명. kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이런 틈을 점검합니다. 점검 항목의 근거는 이 라이브러리와 같은 공개 보고서입니다.

원인별2