TKGS 클러스터에 vSphere용 Velero 플러그인를 설치하면 vSphere용 Velero 플러그인를 사용하여 해당 클러스터에서 실행되는 워크로드를 백업하고 복원할 수 있습니다.
개요
사전 요구 사항: 감독자에 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 호환성 매트릭스를 참조하고 명령을 실행할 때 그에 따라 대체하십시오.
- 다음 명령을 실행합니다.
$ 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
- Velero CLI 설치를 확인합니다.
velero version Client: Version: vX.Y.Z
2단계: S3 호환 버킷 세부 정보 가져오기
편의를 위해 이 단계에서는 감독자에 vSphere용 Velero 플러그인를 설치할 때 구성한 것과 동일한 S3 호환 개체 저장소를 사용 중이라고 가정합니다. 운영 환경에서는 별도의 개체 저장소를 생성하는 것이 좋습니다.
데이터 항목 | 예제 값 |
---|---|
s3Url |
|
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 플러그인 설치(새로운 방법)
- 백업 스토리지 위치에 액세스할 수 있는지 확인합니다.
- Velero vSphere Operator Core 감독자 서비스가 활성화되었는지 확인합니다.
kubectl get ns | grep velero svc-velero-domain-c9 Active 18d
- 이름이
velero
인 Kubernetes 네임스페이스가 감독자에 생성되었는지 확인합니다.kubectl get ns | grep velero svc-velero-domain-c9 Active 18d velero Active 1s
- 감독자에서 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
- 클러스터에 velero 레이블을 추가하여 대상 TKG 클러스터에 대해 Velero를 사용하도록 설정합니다.
kubectl label cluster
CLUSTER-NAME
--namespaceCLUSTER-NS
velero.vsphere.vmware.com/enabled=true참고: 이 작업은 클러스터가 프로비저닝될 때 vSphere 네임스페이스에서 수행됩니다. - 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 플러그인를 설치하려고 합니다.
kubectl
컨텍스트를 자동으로 따릅니다. Velero CLI 명령을 실행하여 대상 클러스터에 Velero 및
vSphere용 Velero 플러그인를 설치하기 전에
kubectl
컨텍스트를 대상 클러스터로 설정해야 합니다.
- kubectl용 vSphere 플러그인을 사용하여 감독자를 인증합니다.
kubectl
컨텍스트를 대상 TKG 클러스터로 설정합니다.kubectl config use-context TARGET-TANZU-KUBERNETES-CLUSTER
- 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
- 다음 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
- 대상 클러스터에 vSphere용 Velero 플러그인를 설치합니다. 설치된 Velero는 Kubernetes API 서버와 통신하여 플러그인을 설치합니다.
velero plugin add vsphereveleroplugin/velero-plugin-for-vsphere:vX.Y.Z
부록: TKG 클러스터에서 vSphere용 Velero 플러그인 제거
kubectl
컨텍스트를 대상 Tanzu Kubernetes 클러스터로 전환합니다.kubectl config use-context TARGET-TANZU-KUBERNETES-CLUSTER
- 플러그인을 제거하려면 다음 명령을 실행하여 Velero 배포에서 velero-plugin-for-vsphere의 InitContainer를 제거합니다.
velero plugin remove vsphereveleroplugin/velero-plugin-for-vsphere:vX.Y.Z
- 프로세스를 완료하려면 백업 드라이버 배포 및 관련 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