Velero와 클라우드 스토리지 통합

Velero와 클라우드 스토리지 통합

8️⃣ Velero와 클라우드 스토리지 통합

Kubernetes 환경에서 Velero를 활용하여 데이터를 안전하게 백업하려면 클라우드 스토리지와의 연동이 필수적입니다.
Velero는 AWS S3, Google Cloud Storage, Azure Blob Storage 및 다양한 온프레미스 스토리지와 통합하여 백업 및 복구를 수행할 수 있습니다.

이 문서에서는 각 클라우드 스토리지와 Velero의 연동 방법을 설명하고, 네트워크 및 성능 최적화 전략을 다룹니다.


1️⃣ AWS S3 및 EBS Snapshot을 이용한 백업

1. S3 스토리지 백업 설정

AWS S3를 Velero의 백업 스토리지로 사용하려면 IAM 권한 및 S3 버킷을 설정해야 합니다.

(1) IAM 역할 생성

aws iam create-user --user-name velero
aws iam attach-user-policy --user-name velero --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess

(2) S3 버킷 생성

aws s3api create-bucket --bucket velero-backup --region us-east-1

(3) Velero 설치 및 구성

velero install \
    --provider aws \
    --bucket velero-backup \
    --secret-file ./credentials-velero \
    --backup-location-config region=us-east-1

2. AWS EBS Snapshot을 이용한 볼륨 백업

Velero는 EBS Snapshot을 활용하여 Persistent Volume (PV)을 백업할 수 있습니다.
EBS 볼륨이 마운트된 PV를 스냅샷 방식으로 백업하려면 VolumeSnapshotLocation을 설정해야 합니다.

apiVersion: velero.io/v1
kind: Backup
metadata:
  name: ebs-backup
spec:
  includedNamespaces:
    - default
  snapshotVolumes: true
  storageLocation: aws

백업 실행:

velero backup create ebs-backup --include-namespaces default

2️⃣ Google Cloud Storage 및 Persistent Disk Snapshot 활용

1. GCS (Google Cloud Storage) 백업 설정

(1) GCS 버킷 생성

gsutil mb -l us-central1 gs://velero-backup

(2) 서비스 계정 및 권한 설정

gcloud iam service-accounts create velero \
    --display-name "Velero service account"

gcloud projects add-iam-policy-binding $(gcloud config get-value project) \
    --member serviceAccount:velero@$(gcloud config get-value project).iam.gserviceaccount.com \
    --role roles/storage.admin

(3) Velero 설치

velero install \
    --provider gcp \
    --bucket velero-backup \
    --secret-file credentials.json \
    --backup-location-config serviceAccountKeyFile=credentials.json

2. Persistent Disk (PD) 스냅샷 활용

Google Cloud에서는 PD Snapshot을 사용하여 볼륨 백업을 수행할 수 있습니다.

gcloud compute disks snapshot my-disk --snapshot-names my-disk-backup

3️⃣ Azure Blob Storage 및 Disk Snapshot 연동

1. Azure Blob Storage 백업 설정

(1) 스토리지 계정 및 컨테이너 생성

az storage account create --name velerobackup --resource-group myResourceGroup --sku Standard_LRS
az storage container create --name velero --account-name velerobackup

(2) Velero 설치 및 백업 구성

velero install \
    --provider azure \
    --bucket velero \
    --secret-file credentials-velero \
    --backup-location-config storageAccount=velerobackup

2. Azure Managed Disk 스냅샷을 이용한 백업

az snapshot create --resource-group myResourceGroup --source myDisk --name myDiskBackup

4️⃣ On-Prem 스토리지 (Ceph, MinIO, NFS) 연동

1. MinIO 백업 설정

MinIO는 AWS S3와 호환되는 오픈소스 오브젝트 스토리지입니다.

(1) MinIO 실행

docker run -p 9000:9000 -p 9001:9001 \
    -e "MINIO_ROOT_USER=admin" \
    -e "MINIO_ROOT_PASSWORD=admin123" \
    quay.io/minio/minio server /data --console-address ":9001"

(2) Velero 설정

velero install \
    --provider aws \
    --bucket velero-backup \
    --secret-file credentials-velero \
    --backup-location-config region=minio,s3Url=http://minio-service:9000

2. Ceph RadosGW 연동

Ceph RadosGW는 S3 호환 API를 제공하므로 MinIO와 유사한 방식으로 설정할 수 있습니다.

3. NFS 백업 활용

NFS를 이용하여 백업을 수행하려면 Restic을 함께 사용하는 것이 좋습니다.

apiVersion: v1
kind: Pod
metadata:
  name: nfs-app
  annotations:
    backup.velero.io/backup-volumes: nfs-data
spec:
  volumes:
    - name: nfs-data
      nfs:
        server: 192.168.1.100
        path: /backup

백업 실행:

velero backup create nfs-backup --include-namespaces default

5️⃣ 스토리지 네트워크 및 성능 최적화 전략

1. 네트워크 최적화

  • 스토리지 위치 최적화 → 클러스터와 가까운 리전에 백업 저장
  • 네트워크 대역폭 제한 → QoS 정책을 활용하여 백업 트래픽 조절

2. 성능 최적화

  • 병렬 백업 활성화
    export VELERO_RESTIC_CONCURRENCY=5
  • 스토리지 압축 사용
    export VELERO_BACKUP_COMPRESSION=gzip

3. 보안 강화

  • 백업 암호화 활성화
    aws s3 cp my-backup s3://my-bucket/ --sse AES256
  • IAM 정책을 최소 권한 원칙(Least Privilege)으로 설정

RSS Feed
마지막 수정일자