TKG 클러스터에 vSphere용 Velero 플러그인를 설치하면 vSphere용 Velero 플러그인를 사용하여 해당 클러스터에서 실행되는 워크로드를 백업하고 복원할 수 있습니다.

개요

vSphere용 Velero 플러그인는 TKG 클러스터 워크로드를 백업하고 복원하기 위한 솔루션을 제공합니다. 영구 워크로드의 경우 vSphere용 Velero 플러그인를 사용하여 영구 볼륨의 스냅샷을 생성할 수 있습니다.
참고: 백업 및 복원하려는 TKG 클러스터 워크로드에 대해 이식성이 필요한 경우에는 vSphere용 Velero 플러그인를 사용하지 마십시오. Kubernetes 클러스터 간 이식성을 위해서는 독립형 Velero를 Restic과 함께 사용하십시오.

사전 요구 사항: 감독자vSphere용 Velero 플러그인 설치

TKG 클러스터에 vSphere용 Velero 플러그인를 설치하려면 감독자vSphere용 Velero 플러그인가 설치되어 있어야 합니다. 또한 감독자가 NSX-T 네트워킹으로 구성되어야 합니다. 감독자에 vSphere용 Velero 플러그인 설치 및 구성의 내용을 참조하십시오.

1단계: Linux Workstation에서 Velero CLI 설치

Velero CLI는 Velero와 상호 작용하기 위한 표준 도구입니다. Velero CLI는 vSphere용 Velero 플러그인 CLI(velero-vsphere)보다 더 많은 기능을 제공하며 Tanzu Kubernetes 클러스터 워크로드를 백업하고 복원하는 데 필요합니다.

Linux 워크스테이션에 Velero CLI를 설치합니다. 이상적으로는 kubectl, kubectl-vsphere, velero-vsphere를 포함한 vSphere with Tanzu 환경에 대해 연결된 CLI를 실행하는 Linux와 동일한 점프 호스트입니다.

Velero CLI를 설치하려면 다음 단계를 완료합니다.
  1. 다음 명령을 실행합니다.
    $ wget https://github.com/vmware-tanzu/velero/releases/download/v1.8.1/velero-v1.8.1-linux-amd64.tar.gz
    $ gzip -d velero-v1.8.1-linux-amd64.tar.gz && tar -xvf velero-v1.8.1-linux-amd64.tar
    $ export PATH="$(pwd)/velero-v1.8.1-linux-amd64:$PATH"
     
    $ which velero
    /root/velero-v1.8.1-linux-amd64/velero
  2. Velero CLI 설치를 확인합니다.
    velero version
    
    Client:
        Version: v1.x.x

2단계: S3 호환 버킷 세부 정보 가져오기

편의를 위해 이 단계에서는 감독자vSphere용 Velero 플러그인를 설치할 때 구성한 것과 동일한 S3 호환 개체 저장소를 사용 중이라고 가정합니다. 운영 환경에서는 별도의 개체 저장소를 생성하는 것이 좋습니다.

vSphere용 Velero 플러그인를 설치하려면 S3 호환 개체 저장소에 대한 다음 정보를 제공해야 합니다.
데이터 항목 예제 값
s3Url

http://my-s3-store.example.com

aws_access_key_id ACCESS-KEY-ID-STRING
aws_secret_access_key SECRET-ACCESS-KEY-STRING
다음 정보를 사용하여 암호 파일 이름 s3-credentials를 생성합니다. 이 파일은 vSphere용 Velero 플러그인를 설치할 때 참조합니다.
aws_access_key_id = ACCESS-KEY-ID-STRING
aws_secret_access_key = SECRET-ACCESS-KEY-STRING

3단계: Velero 플러그인 Configmap 생성

TKG 클러스터에서 velero-vsphere-plugin-config.yaml이라는 Velero 플러그인에 대한 configmap을 생성합니다.
apiVersion: v1
kind: ConfigMap
metadata:
  name: velero-vsphere-plugin-config
data:
  cluster_flavor: GUEST
TKG 클러스터에 configmap을 적용합니다.
kubectl apply -n <velero-namespace> -f velero-vsphere-plugin-config.yaml
configmap을 설치하지 않으면 vSphere용 Velero 플러그인를 설치하려고 할 때 다음 오류가 표시됩니다.
Error received while retrieving cluster flavor from config, err: configmaps "velero-vsphere-plugin-config" not found
Falling back to retrieving cluster flavor from vSphere CSI Driver Deployment

4단계: TKG 클러스터에 vSphere용 Velero 플러그인 설치

Velero CLI를 사용하여 백업 및 복원하려는 대상 TKG 클러스터에 vSphere용 Velero 플러그인를 설치하려고 합니다.

Velero CLI 컨텍스트는 kubectl 컨텍스트를 자동으로 따릅니다. Velero CLI 명령을 실행하여 대상 클러스터에 Velero 및 vSphere용 Velero 플러그인를 설치하기 전에 kubectl 컨텍스트를 대상 클러스터로 설정해야 합니다.
  1. kubectl용 vSphere 플러그인을 사용하여 감독자를 인증합니다.
  2. kubectl 컨텍스트를 대상 TKG 클러스터로 설정합니다.
    kubectl config use-context TARGET-TANZU-KUBERNETES-CLUSTER
  3. 다음 Velero CLI 명령을 실행하여 대상 클러스터에 Velero를 설치합니다.

    BUCKET-NAME, REGION(두 개의 인스턴스) 및 s3Url 필드에 대한 자리 표시자 값을 적절한 값으로 바꿉니다. 앞의 지침에서 벗어난 값(암호 파일의 이름 또는 위치, 수동으로 생성된 velero 네임스페이스의 이름 등)이 있으면 해당 값도 조정합니다.

    ./velero install --provider aws \
    --bucket BUCKET-NAME \
    --secret-file ./s3-credentials \
    --features=EnableVSphereItemActionPlugin \
    --plugins velero/velero-plugin-for-aws:v1.1.0 \
    --snapshot-location-config region=REGION \
    --backup-location-config region=REGION,s3ForcePathStyle="true",s3Url=http://my-s3-store.example.com
  4. 대상 클러스터에 vSphere용 Velero 플러그인를 설치합니다. 설치된 Velero는 Kubernetes API 서버와 통신하여 플러그인을 설치합니다.
    velero plugin add vsphereveleroplugin/velero-plugin-for-vsphere:1.1.0

부록: TKG 클러스터에서 vSphere용 Velero 플러그인 제거

vSphere용 Velero 플러그인를 제거하려면 다음 단계를 완료합니다.
  1. kubectl 컨텍스트를 대상 Tanzu Kubernetes 클러스터로 전환합니다.
    kubectl config use-context TARGET-TANZU-KUBERNETES-CLUSTER
  2. 플러그인을 제거하려면 다음 명령을 실행하여 Velero 배포에서 velero-plugin-for-vsphere의 InitContainer를 제거합니다.
    velero plugin remove vsphereveleroplugin/velero-plugin-for-vsphere:1.1.0
  3. 프로세스를 완료하려면 백업 드라이버 배포 및 관련 CRD를 삭제합니다.
    kubectl -n velero delete deployment.apps/backup-driver
    kubectl delete crds \
    backuprepositories.backupdriver.cnsdp.vmware.com \
    backuprepositoryclaims.backupdriver.cnsdp.vmware.com \
    clonefromsnapshots.backupdriver.cnsdp.vmware.com \
    deletesnapshots.backupdriver.cnsdp.vmware.com \
    snapshots.backupdriver.cnsdp.vmware.com
    kubectl delete crds uploads.datamover.cnsdp.vmware.com downloads.datamover.cnsdp.vmware.com