실제 환경에서 Kubernetes 재해 복구 및 백업 자동화 시스템 구축

발행: (2025년 12월 20일 오후 10:53 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

Overview

실제 네임스페이스 삭제나 설정 손실과 같은 실수 상황을 처리하기 위해 Kubernetes 재해 복구 및 백업 자동화 시스템을 구축했습니다. Kubernetes는 파드 수준에서는 자체 복구가 가능하지만, 인간의 실수에 대해서는 보호하지 못합니다. 이 프로젝트는 클러스터의 실제 상태를 백업하고 복원하는 데 초점을 맞춥니다.

How It Works

  • API Interaction: 시스템은 Node.js를 사용해 Kubernetes API에 직접 연결하고 실시간 리소스를 가져옵니다.
  • YAML Cleaning: 가져온 매니페스트에서 uid, resourceVersion, 타임스탬프, status와 같은 런타임 전용 필드를 제거해 정리합니다. 이를 통해 백업을 포터블하게 만들고 동일하거나 다른 클러스터에 안전하게 재적용할 수 있습니다.
  • Timestamped Backups: 각 백업은 타임스탬프가 포함된 디렉터리에 저장되어 특정 시점으로 복원할 수 있게 합니다.

Testing the Recovery Process

  1. 프로덕션과 유사한 애플리케이션을 배포하고 정상 동작을 확인합니다.
  2. 재해 상황을 시뮬레이션하기 위해 리소스를 의도적으로 삭제합니다.
  3. 복원 로직이 정리된 YAML 파일을 읽어 리소스를 다시 생성합니다.
  4. 배포와 파드가 다시 실행 상태가 되는지 확인하여 복구를 검증합니다.

Production‑Ready Deployment

  • Containerization: 백업 로직을 컨테이너화하여 클러스터 내부에서 Kubernetes CronJob으로 실행합니다.
  • RBAC: 최소 권한 원칙을 적용한 전용 ServiceAccount를 구현해 자동화가 과도한 권한 없이 클러스터 리소스를 읽을 수 있도록 합니다.

Learnings

  • Kubernetes 내부 구조와 메타데이터 처리에 대한 이해가 깊어졌습니다.
  • 보안 자동화를 위한 RBAC 설계를 탐구했습니다.
  • 기본적인 자체 복구를 넘어 실제 재해 복구 시스템이 어떻게 설계되는지 배웠습니다.

Source Code

GitHub Repository – k8s-disaster-recovery-automation

Back to Blog

관련 글

더 보기 »

창고 활용에 대한 종합 가이드

소개 창고는 근본적으로 3‑D 박스일 뿐입니다. Utilisation은 실제로 그 박스를 얼마나 사용하고 있는지를 측정하는 지표입니다. While logistics c...