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

개요

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

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

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

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 IaaS control plane 환경에 대해 연결된 CLI를 실행하는 Linux와 동일한 점프 호스트입니다.

Velero 버전 번호는 X.Y.Z로 표시됩니다. 사용할 특정 버전은 Velero 호환성 매트릭스를 참조하고 명령을 실행할 때 그에 따라 대체하십시오.

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

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단계 옵션 A: 레이블을 사용하여 TKG 클러스터에 vSphere용 Velero 플러그인 설치(새로운 방법)

vSphere 8 업데이트 3 이상을 사용하는 경우 레이블을 추가하여 TKG 클러스터에 vSphere용 Velero 플러그인를 자동으로 설치할 수 있습니다.
  1. 백업 스토리지 위치에 액세스할 수 있는지 확인합니다.
  2. Velero vSphere Operator Core 감독자 서비스가 활성화되었는지 확인합니다.
    kubectl get ns | grep velero
    svc-velero-domain-c9                        Active   18d
  3. 이름이 velero인 Kubernetes 네임스페이스가 감독자에 생성되었는지 확인합니다.
    kubectl get ns | grep velero
    svc-velero-domain-c9                        Active   18d
    velero                                      Active   1s
  4. 감독자에서 vSphere용 Velero 플러그인 감독자 서비스를 사용하도록 설정되어 있는지 확인합니다.
    velero version
    Client:
            Version: v1.11.1
            Git commit: bdbe7eb242b0f64d5b04a7fea86d1edbb3a3587c
    Server:
            Version: v1.11.1
    kubectl get veleroservice -A
    NAMESPACE   NAME      AGE
    velero      default   53m
    velero backup-location get
    NAME      PROVIDER   BUCKET/PREFIX   PHASE       LAST VALIDATED                  ACCESS MODE   DEFAULT
    default   aws        velero          Available   2023-11-20 14:10:57 -0800 PST   ReadWrite     true
  5. 클러스터에 velero 레이블을 추가하여 대상 TKG 클러스터에 대해 Velero를 사용하도록 설정합니다.
    kubectl label cluster CLUSTER-NAME --namespace CLUSTER-NS velero.vsphere.vmware.com/enabled=true
    참고: 이 작업은 클러스터가 프로비저닝될 때 vSphere 네임스페이스에서 수행됩니다.
  6. Velero가 설치되고 클러스터에 사용할 준비가 되었는지 확인합니다.
    kubectl get ns
    NAME                                 STATUS   AGE
    ...
    velero                               Active   2m    <--
    velero-vsphere-plugin-backupdriver   Active   2d23h
    kubectl get all -n velero
    NAME                                 READY   STATUS    RESTARTS   AGE
    pod/backup-driver-5945d6bcd4-gtw9d   1/1     Running   0          17h
    pod/velero-6b9b49449-pq6b4           1/1     Running   0          18h
    NAME                            READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/backup-driver   1/1     1            1           17h
    deployment.apps/velero          1/1     1            1           18h
    NAME                                       DESIRED   CURRENT   READY   AGE
    replicaset.apps/backup-driver-5945d6bcd4   1         1         1       17h
    replicaset.apps/velero-6b9b49449           1         1         1       18h
    velero version
    Client:
            Version: v1.11.1
            Git commit: bdbe7eb242b0f64d5b04a7fea86d1edbb3a3587c
    Server:
            Version: v1.11.1

3단계 옵션 B: 수동으로 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. 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. 다음 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:vX.Y.Z \
    --snapshot-location-config region=REGION \
    --backup-location-config region=REGION,s3ForcePathStyle="true",s3Url=http://my-s3-store.example.com
  5. 대상 클러스터에 vSphere용 Velero 플러그인를 설치합니다. 설치된 Velero는 Kubernetes API 서버와 통신하여 플러그인을 설치합니다.
    velero plugin add vsphereveleroplugin/velero-plugin-for-vsphere:vX.Y.Z

부록: 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:vX.Y.Z
  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