피드로 돌아가기
Dev.toInfrastructure
원문 읽기
7년 된 SSD의 Command_Timeout이 유발한 etcd WAL 지연 및 API SLO 붕괴 해결
Diagnosing KubeAPIErrorBudgetBurn: When a 7-Year-Old Disk Takes Down Your Control Plane
AI 요약
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% 이상) 상시 감시