사례1건
1건 중 1~1번째
- 증상
2023년 7월 22일 10:06:20 UTC 이후에 연결한 Buildkite 에이전트가 새 잡을 받지 못했다. 그 전에 연결한 에이전트는 계속 동작했다.
- 촉발
2023년 7월 22일 10:06:20 UTC 에 연결된 에이전트의 내부 기본 키가 PostgreSQL `integer` 타입의 최댓값을 넘었다.
- 원인
- 구성 요소
- 기여 요인
- 감지
자동 모니터링이 4분 안에 알림을 보냈다.
- 조치
- 비운영 환경에서 확인하고 테이블 파티셔닝을 다시 설정한 뒤, 11:40 UTC 에 에이전트 ID 시퀀스가 -1 에서 시작해 -1 씩 증가하도록 바꿨다. 그 뒤에 연결한 에이전트는 제대로 동작했다.
- 12:08 UTC 까지 10:06 부터 11:40 사이에 연결한 에이전트를 모두 끊어 새 ID 로 다시 연결하게 했다.
- 후속 조치
- 식별자가 최댓값의 50% 를 넘으면 알리는 모니터링과 알림을 만들었다.
- 기존의 모든 기본 키와 외래 키가 올바른지, 최댓값까지 여유가 얼마나 남았는지 점검했다.
- 새 32비트 `integer` 식별자가 들어오지 못하게 막는 ratchet 테스트를 더했다.
- 교훈
Buildkite 는 데이터베이스 샤딩 작업과 함께 새 테이블에 시간 순서 UUID 기본 키를 쓰고 있지만, 기존 숫자 기본 키는 한동안 남겨 둔다. 이 장애로 모니터링에 사각지대가 있다는 것이 드러났다.
내 클러스터에도 있는지 확인하기
이 사례에서 가장 많이 나오는 구성 요소: 데이터베이스. kubegap 은 Claude Code 나 Codex 에서 쿠버네티스 클러스터를 읽기만 하며 이런 틈을 점검합니다. 점검 항목의 근거는 이 라이브러리와 같은 공개 보고서입니다.