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

사례2건

2건 중 1~2번째

  1. 증상

    us-central1 에서 새로 만든 VM 은 네트워크가 동작하기까지 오래 기다려야 했고, 라이브 마이그레이션된 VM 은 마이그레이션 뒤 오래 연결을 잃었다. us-central1 을 오가는 리전 간 트래픽에서 패킷 손실이 났다. 기존 VM 중 마이그레이션되지 않고 상태도 바뀌지 않은 VM 은 직접 영향을 받지 않았다.

    촉발

    관리 플레인의 동작 변경이 us-central1 에 배포됐다. 이 변경은 로드 밸런서 백엔드로 쓰는 GCP Instance Group 과 Network Endpoint Group 의 API 업데이트 처리를 더 잘 분리하려는 것이었다. 이 리전의 큰 워크로드 규모 때문에 가상 네트워크 라우터 컨트롤 플레인의 메모리가 예상 밖으로 늘었다.

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

    엔지니어들은 10월 4일 미국 태평양 시간 21:45 에 us-central1 가상 네트워크 컨트롤 플레인이 느리다는 알림을 받았고, 10월 5일 02:11 에 가상 네트워크 라우터 컨트롤러가 메모리를 다 써서 실패한다는 알림을 받았다. 03:08 부터는 네트워크 텔레메트리가 us-central1 을 오가는 리전 간 패킷 손실을 보여 주었다.

    조치
    • 컨트롤러에 메모리를 더 할당하는 변경을 배포했고, 이 변경은 미국 태평양 시간 05:27 부터 운영 환경에 닿았다. 08:15 에 리전 안 패킷 손실이 가라앉았다.
    • 08:52 에 관리 플레인 변경의 롤백을 시작해 09:35 에 us-central1 에서 마쳤고, 이때 메모리 부족이 모두 멈췄다.
    • 업데이트를 받지 않던 라우터 몇 대를 손으로 재시작했다. 이 재시작으로 패킷 손실이 더 생기지는 않았다.
    후속 조치
    • 메모리 위험과 예상 밖의 메모리 증가를 미리 알리는 알림을 만든다.
    • 엔지니어가 메모리를 훨씬 빨리 다시 할당할 수 있도록 배포 설정을 다시 짠다.
    • API 조정 작업의 기존 관행과 안전장치를 다시 평가하고 새 관행과 안전장치를 만든다.
    • 관리 플레인 변경을 여러 팀이 더 잘 볼 수 있게 해 장애와 더 빨리 연결 짓게 한다.
    • 리전 단위 API 변경 때문에 리전 전체의 메모리가 한꺼번에 바닥나는 일이 줄도록 배포 구성을 바꾼다.
    • 트래픽 라우터와 컨트롤러의 메모리를 최적화해 불필요한 부담을 없앤다.
  2. 증상

    2023년 7월 6일 07시 13분 US/Pacific 부터 GKE 1.24 이상 클러스터의 로그에 예상하지 못한 메시지가 추가로 찍히기 시작했다. Standard 클러스터와 Autopilot 클러스터 모두 해당됐다.

    촉발

    로그 처리를 맡은 GKE 구성 요소의 새 버전이 배포됐다. Google 은 예비 분석에서 이것을 근본 원인으로 꼽았다.

    원인
    구성 요소
    기여 요인
    –
    조치
    • 우회 방법으로, 고객에게 Logging API 할당량 증설을 요청하거나 `fluentbit-gke` 컨테이너와 `fluentbit` 로그의 해당 메시지를 걸러 내는 로그 제외 규칙을 적용하라고 안내했다.
    • 수정본을 시험한 뒤 2023년 7월 10일부터 영향받은 클러스터에 점진적으로 배포했고, 7월 18일 배포가 끝나 장애가 해소됐다.
    교훈

    관리형 로그 에이전트의 업데이트 하나로도 프로젝트의 Logging API 쓰기 할당량이 바닥날 수 있다. 할당량을 넘기면 정작 필요한 다른 로그가 버려진다. Google 은 프로젝트당 노드가 수천 개인 매우 큰 워크로드에서 이 로그가 할당량을 넘길 수 있다고 안내했다. 플랫폼이 고칠 때까지는 메시지 내용을 기준으로 한 로그 제외 규칙으로 저장과 요금 증가를 막을 수 있었다.

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

이 2건에서 가장 많이 나오는 구성 요소: 클라우드 로드 밸런서, 네트워크 컨트롤 플레인. kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이런 틈을 점검합니다. 점검 항목의 근거는 이 라이브러리와 같은 공개 보고서입니다.

원인별1