Skip to content

adr failback os cron

JJong-03 edited this page Jun 17, 2026 · 6 revisions

ADR - Failback 제어: Kubernetes CronJob에서 Master OS cron으로 전환

메타데이터
상태 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

Aegis-Pi Wiki

· 대표 문서 목록은 홈의 문서 탐색 표 참조

시작하기

요구사항

핵심 개념

아키텍처

컴포넌트 (Edge → Cloud → Dashboard)

Dashboard & 운영

시나리오 · 사례 · 참조

Clone this wiki locally