이 항목에서는 독립형 관리 클러스터가 있는 TKG(Tanzu Kubernetes Grid) 워크로드 클러스터에서 호스팅되는 워크로드 및 동적 스토리지 볼륨을 백업하고 복원하는 방법을 설명합니다.
클러스터 인프라를 백업하고 복원하려면 독립형 관리 클러스터 및 워크로드 클러스터 개체 자체에 관리 및 워크로드 클러스터 인프라 백업 및 복원을 참조하십시오.
Supervisor 클러스터, 그리고 Supervisor 클러스터가 생성하는 워크로드 클러스터 등 vSphere with Tanzu 클러스터를 백업하고 복원하려면 VMware vSphere 8.0 설명서의 vSphere with Tanzu 백업 및 복원을 참조하십시오.
오픈 소스 커뮤니티 표준 도구인 Velero를 사용하여 TKG 독립형 관리 클러스터 인프라와 워크로드를 백업하고 복원할 수 있습니다.
Velero는 백업을 저장하기 위해 다양한 스토리지 제공자를 지원합니다. Velero는 다음도 지원합니다.
Tanzu Kubernetes Grid 구독에는 VMware의 테스트를 거친 Velero 호환 배포 지원이 포함되며, Tanzu Kubernetes Grid 다운로드 페이지에 있습니다.
TKG 클러스터를 백업하고 복원하려면 다음이 필요합니다.
위의 사전 요구 사항을 완료한 후에는 Velero를 사용하여 클러스터 간에 워크로드를 마이그레이션할 수도 있습니다. 지침은 Velero 설명서의 클러스터 마이그레이션 및 리소스 필터링을 참조하십시오.
주의이전 버전의 TKG와 함께 배포된 대로 Velero CLI v1.8.1 이하를 이미 설치한 경우 v1.9.7로 업그레이드해야 합니다. 이전 Velero 버전은 v1.9 이상에서 사용되는 CRD에서 작동하지 않습니다.
Velero CLI v1.9.7을 설치하려면 다음을 수행합니다.
.gz
파일을 다운로드합니다. 파일 이름은 velero-linux-
, velero-mac-
또는 velero-windows64-
로 시작합니다.gunzip
명령 또는 선택한 추출 도구를 사용하여 다음의 바이너리 압축을 풉니다.
gzip -d <RELEASE-TARBALL-NAME>.gz
플랫폼의 CLI 바이너리 이름을 velero
로 변경하고 실행 가능한지 확인한 후 PATH
에 추가합니다.
macOS 및 Linux 플랫폼:
/usr/local/bin
폴더로 이동하고 이름을 velero
로 바꿉니다.chmod +x /usr/local/bin/velero
Windows 플랫폼:
Program Files\velero
폴더를 생성하고 바이너리를 이 폴더로 복사합니다.velero.exe
로 바꿉니다.velero
폴더를 마우스 오른쪽 버튼으로 클릭하고 속성(Properties) > 보안(Security)을 선택한 후 사용자 계정에 모든 권한(Full Control) 권한이 있는지 확인합니다.env
를 검색합니다.Path
행을 선택하고 편집(Edit)을 클릭합니다.velero
바이너리에 경로를 입력합니다.Tanzu Kubernetes Grid 워크로드 클러스터 컨텐츠를 백업하려면 다음을 위한 스토리지 위치가 필요합니다.
Velero 설명서의 백업 스토리지 위치 및 볼륨 스냅샷 위치를 참조하십시오. Velero는 다양한 스토리지 제공자를 지원합니다. 다음 중 하나일 수 있습니다.
VMware는 각 클러스터에 고유한 스토리지 버킷을 전용으로 사용할 것을 권장합니다.
MinIO를 설정하려면 다음을 수행합니다.
minIO 자격 증명과 스토리지 위치를 사용하여 minio
컨테이너 이미지를 실행합니다. 예를 들면 다음과 같습니다.
$ docker run -d --name minio --rm -p 9000:9000 -e "MINIO_ACCESS_KEY=minio" -e "MINIO_SECRET_KEY=minio123" -e "MINIO_DEFAULT_BUCKETS=mgmt" gcr.io/velero-gcp/bitnami/minio:2021.6.17-debian-10-r7
자격 증명을 로컬 파일에 저장하여 velero install
의 --secret-file
옵션에 전달합니다. 예를 들면 다음과 같습니다.
[default]
aws_access_key_id=minio
aws_secret_access_key=minio123
vSphere에서 클러스터 개체 스토리지 백업과 볼륨 스냅샷은 동일한 스토리지 위치에 저장됩니다. 이 위치는 AWS(Amazon Web Services)의 S3 호환 외부 스토리지이거나 MinIO와 같은 S3 제공자여야 합니다.
vSphere Velero용 스토리지를 설정하려면 v1.4.3 플러그인용 Vanilla Kubernetes 클러스터의 vSphere용 Velero 플러그인을 참조하십시오.
Velero on AWS용 스토리지를 설정하려면 AWS 저장소용 Velero 플러그인의 절차를 따르십시오.
각 플러그인에 대해 필요에 따라 S3 스토리지를 설정합니다. 개체 저장소 플러그인은 클러스터 개체 백업을 저장 및 검색하고 볼륨 스냅샷은 데이터 볼륨을 저장하고 검색합니다.
Velero on Azure용 스토리지를 설정하려면 Azure 저장소용 Azure 플러그인의 절차를 따르십시오.
각 플러그인에 대해 필요에 따라 S3 스토리지를 설정합니다. 개체 저장소 플러그인은 클러스터 개체 백업을 저장 및 검색하고 볼륨 스냅샷은 데이터 볼륨을 저장하고 검색합니다.
Velero 서버를 워크로드 클러스터에 배포하려면 velero install
명령을 실행합니다. 이 명령은 클러스터에 velero
라는 네임스페이스를 생성하고 velero
라는 배포를 클러스터에 배치합니다.
클러스터에 Velero v1.8.1 이상이 설치되어 있는 경우 다음을 수행하여 Velero v1.9.7 CLI와 함께 작동하도록 CRD를 업데이트합니다.
CRD 업그레이드:
velero install --crds-only --dry-run -o yaml | kubectl apply -f -
Velero 이미지 위치 업데이트:
kubectl -n velero set image deployment velero velero=projects.registry.vmware.com/tkg/velero/velero:v1.9.7_vmware.1
설치된 플러그인에 따라 다음 명령 중 하나 이상을 실행하여 Velero 플러그인 이미지 위치를 업데이트합니다.
kubectl -n velero set image deployment velero velero-plugin-for-csi=projects.registry.vmware.com/tkg/velero/velero-plugin-for-csi:v0.3.5_vmware.1
kubectl -n velero set image deployment velero velero-plugin-for-aws=projects.registry.vmware.com/tkg/velero/velero-plugin-for-aws:v1.5.5_vmware.1
kubectl -n velero set image deployment velero velero-plugin-for-microsoft-azure=projects.registry.vmware.com/tkg/velero/velero-plugin-for-microsoft-azure:v1.5.5_vmware.1
kubectl -n velero set image deployment velero velero-plugin-for-vsphere=projects.registry.vmware.com/tkg/velero/velero-plugin-for-vsphere:v1.4.3_vmware.1
Restic DaemonSet 이미지 위치 업데이트:
kubectl -n velero set image DaemonSet restic restic=projects.registry.vmware.com/tkg/velero/velero:v1.9.7_vmware.1
Velero를 설치하려면 다음 옵션과 함께 velero install
을 실행합니다.
--provider $PROVIDER
: 예: aws
--plugins projects.registry.vmware.com/tkg/velero/velero-plugin-for-aws:v1.5.5_vmware.1
--bucket $BUCKET
: S3 버킷의 이름--backup-location-config region=$REGION
: 버킷이 있는 AWS 지역--snapshot-location-config region=$REGION
: 버킷이 있는 AWS 지역--kubeconfig
현재 기본값이 아닌 클러스터에 Velero 서버를 설치.(선택 사항) --secret-file ./VELERO-CREDS
S3 버킷에 대한 Velero 액세스 권한을 부여하는 한 가지 방법은 다음과 같은 로컬 VELERO-CREDS
파일을 이 옵션으로 전달하는 것입니다.
[default]
aws_access_key_id=<AWS_ACCESS_KEY_ID>
aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
추가 옵션은 Velero 설치 및 시작을 참조하십시오.
velero install
명령을 실행하면 클러스터에 velero
라는 네임스페이스를 생성하고 velero
라는 배포를 클러스터에 배치합니다.
다음 섹션에 설명된 대로 velero install
명령을 실행하고 클러스터에서 Velero를 설정하는 방법은 인프라 및 스토리지 제공자에 따라 다릅니다.
이 절차에서는 vSphere 독립형 관리 클러스터에서 관리하는 워크로드 클러스터에 Velero를 설치합니다.
Tanzu Kubernetes Grid 관리 클러스터 역할을 하는 vSphere with Tanzu Supervisor 클러스터에 Velero를 배포하려면 vSphere with Tanzu 지원 및 복원을 참조하십시오.
클러스터에 TKG v1.6.x 이하 버전의 Velero가 이미 설치되어 있는 경우 이전 Velero 버전에서 CRD 생성에 있는 단계를 수행합니다.
위의 Velero 설치 옵션에 있는 옵션과 함께 velero install
을 실행하여 kubeconfig
의 현재 기본 클러스터에 Velero 서버를 설치합니다.
예를 들어 Velero 설명서의 MinIO 서버 설정 지침에 따라 MinIO를 개체 스토리지로 사용하려면 다음을 수행합니다.
velero install --provider aws --plugins "projects.registry.vmware.com/tkg/velero/velero-plugin-for-aws:v1.5.5_vmware.1" --bucket velero --secret-file ./credentials-velero --backup-location-config "region=minio,s3ForcePathStyle=true,s3Url=minio_server_url" --snapshot-location-config region="default"
자세한 내용은 vSphere v1.4.0 저장소용 Velero 플러그인에서 Vanilla Kubernetes 클러스터에 대한 설치 섹션을 참조하십시오.
클러스터에 Velero 서버를 설치하면 클러스터에 velero
라는 네임스페이스가 생성되고 velero
라는 배포가 배치됩니다.
위의 velero install
를 사용하여 자격 증명 파일을 --secret-file
에 전달하지 않은 경우, 백업 S3 버킷에서 Velero에 대한 액세스 권한 부여를 구성합니다. 예를 들어 AWS에서는 Velero와 같은 호스팅된 애플리케이션을 제어하는 IAM 역할 nodes.tkg.cloud.vmware.com
에 정책을 연결하여 S3 버킷에 대한 액세스를 허용합니다.
vSphere용 Velero 플러그인을 추가하면 Velero가 S3 버킷을 사용하여 클러스터 개체를 저장하는 것 외에도 워크로드 데이터에 대한 CSI 볼륨 스냅샷을 저장할 수 있습니다.
CSI 드라이버가 사용하는 vSphere 자격 증명을 검색하여 암호 구성 파일 csi-vsphere.conf
로 디코딩합니다.
kubectl -n vmware-system-csi get secret vsphere-config-secret -o jsonpath='{.data.csi-vsphere\.conf}'| base64 -d > csi-vsphere.conf
(선택 사항) 다음과 같은 암호 구성 파일 csi-vsphere.conf
에서 vCenter IP 주소, 사용자 이름, 암호 값을 검사하고 확인합니다.
cluster-id = "CLUSTER-ID"
[VirtualCenter "VCENTER-IP"]
user = "USERNAME"
password = "PASSWORD"
port = "443"
구성 파일을 사용하여 네임스페이스 velero
에 velero-vsphere-config-secret
암호를 생성합니다.
kubectl -n velero create secret generic velero-vsphere-config-secret --from-file=csi-vsphere.conf
암호를 참조하는 Velero 플러그인에 ConfigMap
파일 velero-plugin.conf
를 생성합니다.
apiVersion: v1
kind: ConfigMap
metadata:
name: velero-vsphere-plugin-config
data:
cluster_flavor: VANILLA
vsphere_secret_name: velero-vsphere-config-secret
vsphere_secret_namespace: velero
ConfigMap
적용:
kubectl -n velero apply -f velero-plugin.conf
플러그인 추가:
velero plugin add PLUGIN-IMAGE
여기서 PLUGIN-IMAGE
는 vSphere 저장소용 Velero 플러그인 v1.4.3에 있는 컨테이너 이미지의 레지스트리 경로입니다(예: http://projects.registry.vmware.com/tkg/velero/velero-plugin-for-vsphere:v1.4.3_vmware.1
).
계정을 생성할 때 아직 포함하지 않은 경우 Tanzu Kubernetes Grid 계정에 생성한 역할에 다음 VirtualMachine 사용 권한을 추가하여 플러그인을 사용하도록 설정합니다.
AWS의 워크로드 클러스터에 Velero를 설치하려면 AWS 저장소용 Velero 플러그인의 Velero 설치 및 시작 절차를 따르십시오.
클러스터에 TKG v1.6.x 이하 버전의 Velero가 이미 설치되어 있는 경우 이전 Velero 버전에서 CRD 생성에 있는 단계를 수행합니다.
위의 Velero 설치 옵션에 있는 옵션과 함께 velero install
을 실행합니다.
Azure의 워크로드 클러스터에 Velero를 설치하려면 Azure 저장소용 Velero 플러그인의 Velero 설치 및 시작 절차를 따르십시오.
클러스터에 TKG v1.6.x 이하 버전의 Velero가 이미 설치되어 있는 경우 이전 Velero 버전에서 CRD 생성에 있는 단계를 수행합니다.
위의 Velero 설치 옵션에 있는 옵션과 함께 velero install
을 실행합니다.
Velero를 사용하여 전체 클러스터 또는 특정 네임스페이스에 대해 워크로드 클러스터의 현재 워크로드와 영구 볼륨 상태를 백업하고 복원합니다.
워크로드 클러스터의 컨텐츠를 백업하려면 다음을 수행합니다.
필요한 경우 vSphere용 Velero 플러그인과 함께 Velero 서버를 워크로드 클러스터에 배포하려면 클러스터에 Velero 서버 배포 지침을 따르십시오.
클러스터 컨텐츠 백업:
velero backup create your_backup_name
velero backup
이 transport is closing
오류를 반환하는 경우 Velero 설명서의 설치 후 리소스 요청 및 제한 업데이트 설명서에 설명된 대로 메모리 제한을 늘인 후 다시 시도하십시오.
참고Windows 및 다중 OS 워크로드 클러스터의 백업 및 복원은 지원되지 않습니다.
백업에서 워크로드 클러스터의 컨텐츠를 복원하려면 다음을 수행합니다.
새 클러스터를 생성합니다. 클러스터 백업을 기존 클러스터로 복원할 수 없습니다.
필요한 경우 vSphere용 Velero 플러그인과 함께 Velero 서버를 새 클러스터에 배포하려면 클러스터에 Velero 서버 배포 지침을 따르십시오.
클러스터 컨텐츠 복원:
velero backup get
velero restore create your_restore_name --from-backup your_backup_name