Velero 설치 및 환경 구성

Velero 설치 및 환경 구성

1️⃣ Velero 설치 방법

Velero를 Kubernetes 클러스터에 설치하는 방법은 여러 가지가 있습니다.
대표적으로 Helm Chart, CLI, 그리고 Operator 방식이 있습니다.


1. Helm Chart를 이용한 설치

Helm은 Kubernetes 애플리케이션을 쉽게 배포할 수 있도록 도와주는 패키지 매니저입니다.

🛠 Helm을 이용한 Velero 설치 절차

1️⃣ Helm 저장소 추가 및 업데이트

helm repo add vmware-tanzu https://vmware-tanzu.github.io/helm-charts
helm repo update

2️⃣ Velero 설치

helm install velero vmware-tanzu/velero --namespace velero --create-namespace

📌 Helm을 사용하면 Velero 설치가 간단하며 유지보수가 용이합니다.


2. CLI를 이용한 설치

Velero 공식 CLI를 사용하여 직접 설치할 수도 있습니다.

🛠 CLI를 이용한 설치 절차

1️⃣ Velero CLI 다운로드 및 설치

curl -fsSL https://github.com/vmware-tanzu/velero/releases/latest/download/velero-linux-amd64.tar.gz -o velero.tar.gz
tar -xvf velero.tar.gz
sudo mv velero /usr/local/bin/

2️⃣ Velero 설치

velero install \
    --provider aws \
    --plugins velero/velero-plugin-for-aws:v1.5.0 \
    --bucket velero-backups \
    --backup-location-config region=us-west-1

📌 CLI 설치 방법은 간편하고 유연하지만, 수동 설정이 필요할 수 있습니다.


3. Operator를 이용한 설치

Operator는 Kubernetes의 컨트롤러를 이용하여 Velero를 자동으로 관리하는 방법입니다.

🛠 Operator 기반 Velero 설치

kubectl apply -f https://github.com/vmware-tanzu/velero/releases/latest/download/velero-operator.yaml

📌 Operator 방식은 Kubernetes 네이티브 환경에서 Velero를 지속적으로 관리하는 데 적합합니다.


2️⃣ Velero Storage Backend 설정

Velero는 다양한 스토리지 백엔드를 지원합니다.
대표적으로 S3-Compatible 스토리지GCP, Azure Blob Storage가 있습니다.


1. S3-Compatible 스토리지 설정 (MinIO, AWS S3, Ceph RadosGW)

Velero는 기본적으로 S3 프로토콜을 지원하며, MinIO, AWS S3, Ceph RadosGW와 호환됩니다.

🛠 AWS S3 설정 예제

velero install \
    --provider aws \
    --plugins velero/velero-plugin-for-aws:v1.5.0 \
    --bucket velero-backups \
    --backup-location-config region=us-west-1

🛠 MinIO 설정 예제

velero install \
    --provider aws \
    --plugins velero/velero-plugin-for-aws:v1.5.0 \
    --bucket velero-minio \
    --secret-file ./credentials-minio \
    --backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://minio-service.velero.svc:9000

📌 MinIO는 자체 호스팅 S3 스토리지로 온프레미스 환경에서 Velero를 사용할 때 유용합니다.


2. GCP, Azure Blob Storage 설정

Velero는 Google Cloud Storage 및 Azure Blob Storage와도 통합됩니다.

🛠 GCP Storage 설정 예제

velero install \
    --provider gcp \
    --plugins velero/velero-plugin-for-gcp:v1.5.0 \
    --bucket velero-backups \
    --secret-file ./credentials-gcp.json

🛠 Azure Blob Storage 설정 예제

velero install \
    --provider azure \
    --plugins velero/velero-plugin-for-microsoft-azure:v1.5.0 \
    --bucket velero-container \
    --secret-file ./credentials-azure

📌 클라우드 제공업체의 인증 정보가 필요하며, 올바른 플러그인을 사용해야 합니다.


3️⃣ Velero RBAC 설정 (권한 및 역할 기반 접근 관리)

Velero는 Kubernetes의 RBAC(Role-Based Access Control)를 활용하여 리소스 접근을 관리합니다.

1. Velero 서비스 계정 및 RBAC 역할 생성

apiVersion: v1
kind: ServiceAccount
metadata:
  name: velero
  namespace: velero
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: velero
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: velero
    namespace: velero

📌 Velero가 클러스터 리소스에 접근하려면 적절한 권한이 필요합니다.


4️⃣ Velero와 Persistent Volume(PV) 백업 전략

Velero는 Persistent Volume을 백업할 때 두 가지 방법을 제공합니다.

1. CSI 스냅샷을 이용한 백업

  • 클라우드 스토리지에서 볼륨 스냅샷을 직접 생성
  • 빠르고 효율적이지만, 클라우드 제공업체 지원 필요

2. Restic을 이용한 파일 단위 백업

  • 파일 기반 백업을 통해 어떤 환경에서도 사용 가능
  • 볼륨을 복사하여 백업하는 방식이므로 속도가 느릴 수 있음

🛠 Restic 백업 활성화

velero backup create my-backup \
    --default-volumes-to-restic

📌 클라우드 기반이면 CSI, 온프레미스 환경이면 Restic이 유용합니다.


5️⃣ 네트워크 및 방화벽 설정 고려사항

Velero는 외부 스토리지와 통신하므로 네트워크 및 방화벽 설정이 중요합니다.

1. Velero가 사용하는 네트워크 포트

포트 설명
9000 MinIO (S3 호환 API)
443 AWS S3, GCP Storage, Azure Blob Storage
10250 Kubernetes API Server (필요 시)

2. 방화벽 및 네트워크 고려사항

✅ 클러스터에서 S3 또는 GCS에 접근할 수 있도록 방화벽 규칙 추가
✅ 온프레미스 환경에서는 MinIO 등의 자체 호스팅 스토리지 고려
✅ Velero가 Kubernetes API와 통신할 수 있도록 RBAC 및 네트워크 정책 구성


RSS Feed
마지막 수정일자