可以使用 適用於 vSphere 的 Velero 外掛程式 備份和還原在 TKGS 叢集上執行的工作負載,方法是在該叢集上安裝 適用於 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 Workstation 上安裝 Velero CLI。理想情況下,這也是針對 vSphere IaaS control plane 環境執行相關聯 CLI 的同一跳轉主機,包括 kubectl
、kubectl-vsphere
和 velero-vsphere
。
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 核心 主管服務。
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