Velero 개요

Velero 개요

1️⃣ Velero란? (Kubernetes 백업 & 복구 솔루션)

Velero는 Kubernetes 클러스터의 백업 및 복구를 위한 오픈소스 솔루션입니다. Velero를 사용하면 다음과 같은 작업을 수행할 수 있습니다.

  • 백업(Backup): Kubernetes 리소스 및 영구 볼륨을 스토리지에 백업
  • 복원(Restore): 저장된 백업을 사용하여 특정 시점으로 클러스터를 복원
  • 이동(Migration): 클러스터 간 애플리케이션을 마이그레이션

📌 Velero는 특정 시점의 상태를 보존하여 장애 발생 시 신속한 복구를 가능하게 합니다.


2️⃣ Velero의 주요 기능과 특징

  1. Kubernetes 네이티브 지원

    • Kubernetes API를 기반으로 백업 및 복구 작업 수행
    • 클러스터 리소스와 볼륨 데이터를 함께 백업 가능
  2. 유연한 스토리지 옵션

    • S3 호환 스토리지(AWS S3, MinIO 등) 지원
    • CSI(CSI Volume Snapshots) 및 Restic 기반 백업 지원
  3. 자동 스케줄링 및 백업 정책

    • 특정 주기로 자동 백업 설정 가능
    • TTL(Time-to-Live) 설정을 통해 백업 데이터의 보관 기간 조절
  4. 재해 복구(Disaster Recovery) 및 클러스터 이동

    • 클러스터 장애 발생 시 신속한 복구 가능
    • 클러스터 간 애플리케이션 마이그레이션 지원

3️⃣ Kubernetes 내 데이터 보호의 중요성

Kubernetes 클러스터에서 데이터 보호가 중요한 이유는 다음과 같습니다.

  • 장애 복구(Disaster Recovery):
    하드웨어 장애, 네트워크 장애 또는 사용자 실수로 인한 데이터 손실을 방지

  • 애플리케이션 지속성 보장:
    애플리케이션의 데이터를 보존하고 일관성을 유지하여 서비스 운영 지속 가능

  • 보안 및 규정 준수:
    규정 준수를 위한 데이터 보관 정책을 설정하고 감사 로그 유지

🔍 백업 없이 Kubernetes 클러스터 장애가 발생하면, 애플리케이션 복구가 어려울 수 있습니다.


4️⃣ Velero의 작동 방식 (Backup, Restore, Migrate)

Velero의 핵심 작동 방식은 다음과 같습니다.

1. Backup (백업)

  • velero backup create 명령을 실행하여 클러스터 리소스 및 볼륨을 백업
  • 객체 스토리지(S3, MinIO 등)에 백업 데이터 저장
velero backup create my-backup --include-namespaces=default

📌 특정 네임스페이스의 모든 리소스를 백업

2. Restore (복구)

  • velero restore create 명령을 실행하여 백업된 데이터를 복구
velero restore create --from-backup my-backup

📌 my-backup 백업에서 모든 리소스를 복구

3. Migrate (이동 및 마이그레이션)

  • 클러스터 간 백업 및 복구를 통해 애플리케이션을 이동
  • 새로운 클러스터에서 백업 데이터를 복원하여 동일한 환경 구성
velero backup create cluster-backup
velero restore create --from-backup cluster-backup

📌 Velero는 Kubernetes 네이티브 방식으로 리소스 이동을 지원합니다.


5️⃣ 기존 Kubernetes 백업 방식과 Velero 비교

백업 방식 장점 단점
kubectl + etcd 백업 기본 제공 기능 활용 가능 복잡한 복구 과정 필요
CSI Volume Snapshots 빠른 스냅샷 생성 가능 애플리케이션 리소스는 백업되지 않음
Velero Kubernetes 리소스와 볼륨을 함께 백업 가능 설정 필요

Velero는 Kubernetes 리소스 및 데이터를 종합적으로 백업할 수 있는 솔루션입니다.


6️⃣ Velero와 스토리지 백업 솔루션 (Restic, Snapshots)

Velero는 두 가지 주요 스토리지 백업 방식을 지원합니다.

1. CSI Volume Snapshots

  • Kubernetes CSI를 이용한 볼륨 스냅샷 생성
  • 클라우드 제공업체의 CSI 드라이버가 필요
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
  name: my-snapshot
spec:
  source:
    persistentVolumeClaimName: my-pvc

📌 빠른 백업 가능하지만 클라우드 CSI 지원이 필요함

2. Restic 백업

  • Velero에서 지원하는 파일 시스템 기반 백업
  • 클러스터에서 별도의 CSI 지원 없이 백업 가능
velero backup create my-backup --include-namespaces=default --default-volumes-to-restic

📌 스토리지 종속성이 없지만 성능이 다소 낮음


RSS Feed
마지막 수정일자