피드로 돌아가기
Grafana 'No Data' after migration: 7 reconcilers we had to kill first
Dev.toDev.to
Infrastructure

7개 Reconciler에 의한 설정 강제 회귀 및 시스템 오염 해결

Grafana 'No Data' after migration: 7 reconcilers we had to kill first

Muhammad Hassaan Javed2026년 5월 21일10advanced

Context

Cluster Migration 후 Grafana 대시보드 내 'No Data' 현상 발생 및 수동 설정 변경이 1~3분 내로 자동 원복되는 현상 식별. 단순 설정 오류가 아닌 Cluster 내 쓰기 권한을 가진 다수의 Reconciler가 오염된 Source of Truth를 지속적으로 동기화하는 구조적 문제로 분석.

Technical Solution

  • Persistence-first Triage 전략을 통한 개별 설정 패치 중단 및 Cluster 내 모든 Write Actor 전수 조사 수행
  • kworker 프로세스로 위장하여 /root/.kube/config 및 /opt/.reconciler/state.json을 참조하는 Userspace Binary 탐지 및 제거
  • kube-system 및 cattle-monitoring-system 네임스페이스 내 미승인 CronJob의 ConfigMap 재작성 루프 차단
  • Mutating Webhook(rbac-policy-enforcer 등)을 통한 RBAC 및 리소스 설정 강제 변조 메커니즘 무력화
  • chattr +i 속성으로 보호된 로컬 파일 및 Finalizer가 설정된 리소스를 식별하여 강제 삭제 및 상태 정상화
  • 시스템 서비스(systemd timer)와 호스트 크론탭(/etc/cron.d)에 분산 배치된 백업 복구 스크립트 제거

1. 설정 원복 현상 발생 시 kubectl edit 중단 후 Cluster Write 권한을 가진 Actor 리스트업

2. ps auxf 및 /proc/[pid]/fd 분석을 통한 위장 프로세스 및 Kubeconfig 참조 경로 확인

3. Mutating/Validating Webhook 목록을 전수 조사하여 미승인 리소스 변조 로직 확인

4. CronJob의 Finalizer 및 파일 시스템의 chattr 속성 확인을 통한 삭제 방해 요소 제거

5. 미승인 네임스페이스 및 PodSecurity 라벨 설정을 통한 디버깅 팟 차단 여부 검토

원문 읽기