-
Notifications
You must be signed in to change notification settings - Fork 0
adr failback os cron
JJong-03 edited this page Jun 17, 2026
·
6 revisions
| 메타데이터 | 값 |
|---|---|
| 상태 | accepted |
| 결정일 | 2026-04-29 |
| 현재 유효 여부 | 유효 |
| Superseded 관계 | Kubernetes CronJob 기반 failback 계획을 대체 |
| 구현 근거 | master의 /usr/local/sbin/safe-edge-failback.sh와 OS cron |
| 검증 근거 |
docs/ops/09_failover_failback_test_results.md, failback log의 SKIP 및 worker2 복귀 확인 |
Wiki ADR 파일명은 유지한다.
0002충돌/통합 이력은docs/changes/README.md와 파일명으로 식별한다.
worker2 복구 후 AI/audio/BME workload를 되돌리는 제어는 Kubernetes CronJob이 아니라 master OS cron에서 실행하는 Kubernetes-only 스크립트가 담당한다.
master OS cron
-> worker2 Ready 확인
-> 대상 Pod의 현재 node 확인
-> worker2면 SKIP
-> worker1이면 순차 삭제
-> preferred affinity로 worker2 재스케줄
SSH나 worker node 비밀번호를 사용하지 않는다.
- 장애 중 Kubernetes workload에 failback controller 자체를 의존시키지 않는다.
- worker2 준비 전 삭제와 이미 정상인 worker2 Pod의 중복 삭제를 피한다.
- 하드웨어 의존 Pod를 단순한 Kubernetes API 판정으로 순차 이동한다.
Operator는 현재 범위보다 복잡하고, 수동 실행은 무인 복구를 제공하지 못한다.
-
/var/log/safe-edge-failback.log가 운영 점검 대상이다. - 실행 시점은 cron 주기와 worker2 Ready 판정에 의존한다.
- workload가 worker2로 돌아온 뒤 InfluxDB write와 Longhorn healthy를 별도로 확인한다.
- OS cron 자체가 중단되면 자동 failback은 일어나지 않으므로 K3s scheduler HA와 동일시하지 않는다.
운영 맥락: 모범사례와 실패사례 §1.3 · §7.1
- 시스템 아키텍처
- 제어 & 데이터 플레인
- Dashboard VPC 설계
- 하드웨어 배치
- Hub EKS 네임스페이스
- Tailscale Mesh VPN
- 데이터 생명주기
- 데이터 조회 모델
- 실시간 갱신 구조
- IoT 데이터 계약
- Reporting Pipeline
- 로컬 스토리지
- 클라우드 스토리지
- Edge Agent
- Edge AI 탐지
- Factory-A Log Adapter
- Dummy Sensor
- Edge IoT Publisher
- Lambda Data Processor
- Risk Normalizer
- Risk Score Engine
- Pipeline Status Aggregator
- Graph Aggregator 5m
- Cloud Infra Collector
- Daily Report Generator
- Risk Alert Dispatcher
- Image Snapshot Pipeline
- Dashboard Backend
- Dashboard Web
- AI 채팅 어시스턴트