피드로 돌아가기
Diagnosing KubeAPIErrorBudgetBurn: When a 7-Year-Old Disk Takes Down Your Control Plane
Dev.toDev.to
Infrastructure

7년 된 SSD의 Command_Timeout이 유발한 etcd WAL 지연 및 API SLO 붕괴 해결

Diagnosing KubeAPIErrorBudgetBurn: When a 7-Year-Old Disk Takes Down Your Control Plane

Kashish Lakhara2026년 5월 24일6advanced

Context

Bare-metal 환경의 Kubernetes Control Plane에서 주기적인 Latency Spike로 인한 KubeAPIErrorBudgetBurn 발생. etcd의 Linearizable Read와 Write 작업이 지연되며 API Server 타임아웃 및 CoreDNS, Metrics-server의 연쇄적 장애로 이어진 상황.

Technical Solution

  • CPU, Memory, Network 등 Compute 리소스 정상 확인 후 데이터스토어인 etcd 병목 지점으로 분석 범위 축소
  • etcd 컨테이너 로그 분석을 통해 Raft Agreement 대기 시간(400ms) 및 Write 지연(100-180ms) 확인
  • Prometheus 메트릭 기반 etcd WAL fsync p99 수치가 300-500ms까지 치솟은 점을 포착하여 Disk IO 문제로 특정
  • smartctl을 이용한 하드웨어 펌웨어 레벨 진단으로 Command_Timeout(85회) 및 수명 종료(9% 잔존) 상태 확인
  • 물리 디스크 교체 및 etcd 전용 디스크 분리를 통한 IO 경합 제거 설계 적용

- etcd WAL fsync p99 메트릭 기반 Alert 설정 (50ms 경고, 100ms 긴급 호출) - smartctl_exporter 도입을 통한 Disk Command_Timeout 수치 모니터링 - etcd 데이터 디렉토리를 타 워크로드와 분리된 전용 고성능 SSD에 배치 - node_exporter를 통한 Disk IO Saturation(50% 이상) 상시 감시

원문 읽기