피드로 돌아가기
Dev.toInfrastructure
원문 읽기
7개 Reconciler에 의한 설정 강제 회귀 및 시스템 오염 해결
Grafana 'No Data' after migration: 7 reconcilers we had to kill first
AI 요약
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 라벨 설정을 통한 디버깅 팟 차단 여부 검토