Velero 개요
1️⃣ Velero란? (Kubernetes 백업 & 복구 솔루션)
Velero는 Kubernetes 클러스터의 백업 및 복구를 위한 오픈소스 솔루션입니다. Velero를 사용하면 다음과 같은 작업을 수행할 수 있습니다.
- 백업(Backup): Kubernetes 리소스 및 영구 볼륨을 스토리지에 백업
- 복원(Restore): 저장된 백업을 사용하여 특정 시점으로 클러스터를 복원
- 이동(Migration): 클러스터 간 애플리케이션을 마이그레이션
📌 Velero는 특정 시점의 상태를 보존하여 장애 발생 시 신속한 복구를 가능하게 합니다.
2️⃣ Velero의 주요 기능과 특징
-
Kubernetes 네이티브 지원
- Kubernetes API를 기반으로 백업 및 복구 작업 수행
- 클러스터 리소스와 볼륨 데이터를 함께 백업 가능
-
유연한 스토리지 옵션
- S3 호환 스토리지(AWS S3, MinIO 등) 지원
- CSI(CSI Volume Snapshots) 및 Restic 기반 백업 지원
-
자동 스케줄링 및 백업 정책
- 특정 주기로 자동 백업 설정 가능
- TTL(Time-to-Live) 설정을 통해 백업 데이터의 보관 기간 조절
-
재해 복구(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
📌 스토리지 종속성이 없지만 성능이 다소 낮음
마지막 수정일자