Velero 마이그레이션(Migration) 전략
1️⃣ Velero를 활용한 클러스터 간 마이그레이션
Velero를 사용하면 기존 Kubernetes 클러스터에서 새로운 클러스터로 손쉽게 데이터를 이전할 수 있습니다. 클러스터 간 마이그레이션을 위해 Velero는 다음과 같은 단계를 따릅니다.
1. 원본 클러스터에서 백업 생성
velero backup create cluster-backup --include-namespaces=default,my-namespace --snapshot-volumes
2. 백업 상태 확인
velero backup get
3. 새 클러스터에서 Velero 설치
velero install --provider aws --bucket velero-backups --secret-file ./credentials-velero --use-volume-snapshots=true
4. 새 클러스터로 백업 데이터 복원
velero restore create cluster-restore --from-backup cluster-backup
2️⃣ Velero Backup & Restore를 이용한 클러스터 이전
1. 백업 파일을 외부 스토리지(S3, MinIO 등)에 저장
velero backup create full-cluster-backup --storage-location default
2. 백업 데이터 다운로드 및 전송
aws s3 sync s3://velero-backups ./backup-data
scp -r ./backup-data user@new-cluster:/home/user/
3. 새로운 클러스터에서 복구 실행
velero restore create full-cluster-restore --from-backup full-cluster-backup
3️⃣ 다중 클러스터 환경에서 Velero 운영 전략
1. 각 클러스터에 Velero 설치 및 S3 연동
velero install --provider aws --bucket velero-multi-cluster --secret-file ./credentials-velero --use-volume-snapshots=true
2. 다중 클러스터 백업 정책 설정 (CronJob 활용)
kubectl create cronjob velero-backup --schedule="0 0 * * *" -- /bin/sh -c "velero backup create multi-cluster-backup-$(date +\%Y\%m\%d)"
3. 클러스터 간 리소스 이동
velero restore create --from-backup multi-cluster-backup-20230401 --include-namespaces=my-app
4️⃣ Velero를 활용한 Kubernetes 버전 업그레이드 전략
1. 기존 클러스터에서 백업 수행
velero backup create upgrade-backup --snapshot-volumes
2. 새로운 Kubernetes 클러스터 구축 후 Velero 설치
velero install --provider aws --bucket velero-upgrade --secret-file ./credentials-velero
3. 백업된 데이터 복원하여 클러스터 업그레이드 완료
velero restore create upgrade-restore --from-backup upgrade-backup
5️⃣ CI/CD와 Velero 연계하여 백업/마이그레이션 자동화
1. GitHub Actions를 활용한 Velero 백업 자동화
name: Velero Backup
on:
schedule:
- cron: '0 3 * * *'
jobs:
backup:
runs-on: ubuntu-latest
steps:
- name: Install Velero
run: |
curl -fsSL https://github.com/vmware-tanzu/velero/releases/latest/download/velero-linux-amd64.tar.gz | tar -xzvf -
sudo mv velero /usr/local/bin/
- name: Perform Backup
run: velero backup create cicd-backup --snapshot-volumes
2. ArgoCD를 활용한 Velero 복원 자동화
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: velero-restore
spec:
destination:
namespace: velero
syncPolicy:
automated: {}
source:
repoURL: 'https://github.com/my-org/velero-backups.git'
path: restore/
targetRevision: main
✅ CI/CD 파이프라인을 활용하면 백업 및 복구를 자동화하여 운영 부담을 줄일 수 있습니다.
마지막 수정일자