使用 Trident Protect 還原應用程式
您可以使用 Trident Protect 從快照或備份還原應用程式。將應用程式還原至同一個叢集時、從現有的快照還原速度會更快。
|
|
從備份還原至不同的命名空間
當您使用 BackupRestore CR 將備份還原至不同的命名空間時, Trident Protect 會將應用程式還原至新命名空間,並為還原的應用程式建立應用程式 CR 。若要保護還原的應用程式,請建立隨需備份或快照,或建立保護排程。
|
將備份還原至具有現有資源的不同命名空間,並不會改變任何與備份中共用名稱的資源。若要還原備份中的所有資源,請刪除並重新建立目標命名空間,或將備份還原至新的命名空間。 |
確保 AWS 工作階段權杖到期時間足以執行任何長時間執行的 S3 還原作業。如果 Token 在還原作業期間過期,作業可能會失敗。
-
如需檢查目前工作階段權杖到期時間的詳細資訊,請參閱 "AWS API 文件"。
-
如需 AWS 資源認證的詳細資訊,請參閱 "AWS IAM 文件"。
|
當您使用 Kopia 作為資料移動器還原備份時,您可以選擇在 CR 中指定註解或使用 CLI 來控制 Kopia 使用的暫存的行為。請參閱 "Kopia 文件"有關您可以配置的選項的詳細資訊。使用 `tridentctl-protect create --help`命令以取得有關使用Trident Protect CLI 指定註解的更多資訊。 |
-
建立自訂資源( CR )檔案並命名為
trident-protect-backup-restore-cr.yaml
。 -
在您建立的檔案中,設定下列屬性:
-
* metadata.name*: ( _required )此自訂資源的名稱;為您的環境選擇唯一且合理的名稱。
-
spec.appArchivePath :儲存備份內容的 AppVault 內部路徑。您可以使用下列命令來尋找此路徑:
kubectl get backups <BACKUP_NAME> -n my-app-namespace -o jsonpath='{.status.appArchivePath}'
-
spec.appVaultRef :( _required _ )儲存備份內容的 AppVault 名稱。
-
spec.namespaceMapping: 將還原作業的來源命名空間對應至目的地命名空間。以環境中的資訊取代
my-source-namespace`和 `my-destination-namespace
。--- apiVersion: protect.trident.netapp.io/v1 kind: BackupRestore metadata: name: my-cr-name namespace: my-destination-namespace spec: appArchivePath: my-backup-path appVaultRef: appvault-name namespaceMapping: [{"source": "my-source-namespace", "destination": "my-destination-namespace"}]
-
-
( Optional )如果您只需要選取應用程式的某些資源來還原,請新增篩選功能,以包含或排除標記有特定標籤的資源:
Trident Protect 會自動選取部分資源,因為這些資源與您選取的資源之間的關係。例如,如果您選取持續磁碟區宣告資源,而且該資源有相關聯的 Pod ,則 Trident Protect 也會還原相關聯的 Pod 。 -
resourceFilter.resourceSelectionCriteria :(篩選所需)使用 `Include`或包含或 `Exclude`排除在 resourceMatchers 中定義的資源。新增下列資源配置工具參數、以定義要納入或排除的資源:
-
resourceFilter.resourceMatchers :一組 resourceMatcher 物件。如果您在此陣列中定義多個元素,它們會比對為 OR 作業,而每個元素(群組,種類,版本)內的欄位會比對為 AND 作業。
-
resourceMatchers[].group :( Optional )要篩選的資源群組。
-
resourceMatchers[].cher :( Optional )要篩選的資源種類。
-
resourceMatchers[].version :( Optional )要篩選的資源版本。
-
要篩選之資源的 Kubernetes metadata.name 欄位中的 * resourceMatchers[].names* :( Optional )名稱。
-
要篩選之資源的 Kubernetes metadata.name 欄位中的 * resourceMatchers[].names* :( Optional )命名空間。
-
資源的 Kubernetes metadata.name 欄位中的 *resourceMatchers[].labelSelectors * :( Optional ) Label 選取器字串,如中所定義 "Kubernetes文件"。例如
"trident.netapp.io/os=linux"
:。例如:
-
-
spec: resourceFilter: resourceSelectionCriteria: "Include" resourceMatchers: - group: my-resource-group-1 kind: my-resource-kind-1 version: my-resource-version-1 names: ["my-resource-names"] namespaces: ["my-resource-namespaces"] labelSelectors: ["trident.netapp.io/os=linux"] - group: my-resource-group-2 kind: my-resource-kind-2 version: my-resource-version-2 names: ["my-resource-names"] namespaces: ["my-resource-namespaces"] labelSelectors: ["trident.netapp.io/os=linux"]
-
-
在您以正確的值填入檔案之後
trident-protect-backup-restore-cr.yaml
、請套用 CR :kubectl apply -f trident-protect-backup-restore-cr.yaml
-
將備份還原至不同的命名空間,以環境中的資訊取代括弧中的值。此
namespace-mapping`引數使用以冒號分隔的命名空間,以格式將來源命名空間對應至正確的目的地命名空間 `source1:dest1,source2:dest2
。例如:tridentctl-protect create backuprestore <my_restore_name> \ --backup <backup_namespace>/<backup_to_restore> \ --namespace-mapping <source_to_destination_namespace_mapping> \ -n <application_namespace>
從備份還原至原始命名空間
您可以隨時將備份還原至原始命名空間。
確保 AWS 工作階段權杖到期時間足以執行任何長時間執行的 S3 還原作業。如果 Token 在還原作業期間過期,作業可能會失敗。
-
如需檢查目前工作階段權杖到期時間的詳細資訊,請參閱 "AWS API 文件"。
-
如需 AWS 資源認證的詳細資訊,請參閱 "AWS IAM 文件"。
|
當您使用 Kopia 作為資料移動器還原備份時,您可以選擇在 CR 中指定註解或使用 CLI 來控制 Kopia 使用的暫存的行為。請參閱 "Kopia 文件"有關您可以配置的選項的詳細資訊。使用 `tridentctl-protect create --help`命令以取得有關使用Trident Protect CLI 指定註解的更多資訊。 |
-
建立自訂資源( CR )檔案並命名為
trident-protect-backup-ipr-cr.yaml
。 -
在您建立的檔案中,設定下列屬性:
-
* metadata.name*: ( _required )此自訂資源的名稱;為您的環境選擇唯一且合理的名稱。
-
spec.appArchivePath :儲存備份內容的 AppVault 內部路徑。您可以使用下列命令來尋找此路徑:
kubectl get backups <BACKUP_NAME> -n my-app-namespace -o jsonpath='{.status.appArchivePath}'
-
spec.appVaultRef :( _required _ )儲存備份內容的 AppVault 名稱。
例如:
--- apiVersion: protect.trident.netapp.io/v1 kind: BackupInplaceRestore metadata: name: my-cr-name namespace: my-app-namespace spec: appArchivePath: my-backup-path appVaultRef: appvault-name
-
-
( Optional )如果您只需要選取應用程式的某些資源來還原,請新增篩選功能,以包含或排除標記有特定標籤的資源:
Trident Protect 會自動選取部分資源,因為這些資源與您選取的資源之間的關係。例如,如果您選取持續磁碟區宣告資源,而且該資源有相關聯的 Pod ,則 Trident Protect 也會還原相關聯的 Pod 。 -
resourceFilter.resourceSelectionCriteria :(篩選所需)使用 `Include`或包含或 `Exclude`排除在 resourceMatchers 中定義的資源。新增下列資源配置工具參數、以定義要納入或排除的資源:
-
resourceFilter.resourceMatchers :一組 resourceMatcher 物件。如果您在此陣列中定義多個元素,它們會比對為 OR 作業,而每個元素(群組,種類,版本)內的欄位會比對為 AND 作業。
-
resourceMatchers[].group :( Optional )要篩選的資源群組。
-
resourceMatchers[].cher :( Optional )要篩選的資源種類。
-
resourceMatchers[].version :( Optional )要篩選的資源版本。
-
要篩選之資源的 Kubernetes metadata.name 欄位中的 * resourceMatchers[].names* :( Optional )名稱。
-
要篩選之資源的 Kubernetes metadata.name 欄位中的 * resourceMatchers[].names* :( Optional )命名空間。
-
資源的 Kubernetes metadata.name 欄位中的 *resourceMatchers[].labelSelectors * :( Optional ) Label 選取器字串,如中所定義 "Kubernetes文件"。例如
"trident.netapp.io/os=linux"
:。例如:
-
-
spec: resourceFilter: resourceSelectionCriteria: "Include" resourceMatchers: - group: my-resource-group-1 kind: my-resource-kind-1 version: my-resource-version-1 names: ["my-resource-names"] namespaces: ["my-resource-namespaces"] labelSelectors: ["trident.netapp.io/os=linux"] - group: my-resource-group-2 kind: my-resource-kind-2 version: my-resource-version-2 names: ["my-resource-names"] namespaces: ["my-resource-namespaces"] labelSelectors: ["trident.netapp.io/os=linux"]
-
-
在您以正確的值填入檔案之後
trident-protect-backup-ipr-cr.yaml
、請套用 CR :kubectl apply -f trident-protect-backup-ipr-cr.yaml
-
將備份還原至原始命名空間,以環境中的資訊取代括弧中的值。
backup`引數使用的名稱空間和備份名稱格式為 `<namespace>/<name>
。例如:tridentctl-protect create backupinplacerestore <my_restore_name> \ --backup <namespace/backup_to_restore> \ -n <application_namespace>
從備份還原至不同的叢集
如果原始叢集發生問題,您可以將備份還原至不同的叢集。
|
當您使用 Kopia 作為資料移動器還原備份時,您可以選擇在 CR 中指定註解或使用 CLI 來控制 Kopia 使用的暫存的行為。請參閱 "Kopia 文件"有關您可以配置的選項的詳細資訊。使用 `tridentctl-protect create --help`命令以取得有關使用Trident Protect CLI 指定註解的更多資訊。 |
確保符合下列先決條件:
-
目的地叢集已安裝 Trident Protect 。
-
目的地叢集可存取與儲存備份的來源叢集相同 AppVault 的儲存區路徑。
-
確保您的本地環境正在運作 `tridentctl-protect get appvaultcontent`命令。如果網路限制阻止訪問,請從目標叢集上的 pod 內執行Trident Protect CLI。
-
確保 AWS 工作階段權杖到期時間足以執行任何長時間執行的還原作業。如果 Token 在還原作業期間過期,作業可能會失敗。
-
如需檢查目前工作階段權杖到期時間的詳細資訊,請參閱 "AWS API 文件"。
-
如需 AWS 資源認證的詳細資訊,請參閱 "AWS 文件"。
-
-
使用 Trident Protect CLI 外掛程式檢查目的地叢集上的 AppVault CR 可用度:
tridentctl-protect get appvault --context <destination_cluster_name>
確保目的地叢集上存在用於應用程式還原的命名空間。 -
從目的地叢集檢視可用 AppVault 的備份內容:
tridentctl-protect get appvaultcontent <appvault_name> \ --show-resources backup \ --show-paths \ --context <destination_cluster_name>
執行此命令會顯示 AppVault 中的可用備份,包括其原始叢集,對應的應用程式名稱,時間戳記和歸檔路徑。
-
輸出範例: *
+-------------+-----------+--------+-----------------+--------------------------+-------------+ | CLUSTER | APP | TYPE | NAME | TIMESTAMP | PATH | +-------------+-----------+--------+-----------------+--------------------------+-------------+ | production1 | wordpress | backup | wordpress-bkup-1| 2024-10-30 08:37:40 (UTC)| backuppath1 | | production1 | wordpress | backup | wordpress-bkup-2| 2024-10-30 08:37:40 (UTC)| backuppath2 | +-------------+-----------+--------+-----------------+--------------------------+-------------+
-
-
使用 AppVault 名稱和歸檔路徑將應用程式還原至目的地叢集:
-
建立自訂資源( CR )檔案並命名為
trident-protect-backup-restore-cr.yaml
。 -
在您建立的檔案中,設定下列屬性:
-
* metadata.name*: ( _required )此自訂資源的名稱;為您的環境選擇唯一且合理的名稱。
-
spec.appVaultRef :( _required _ )儲存備份內容的 AppVault 名稱。
-
spec.appArchivePath :儲存備份內容的 AppVault 內部路徑。您可以使用下列命令來尋找此路徑:
kubectl get backups <BACKUP_NAME> -n my-app-namespace -o jsonpath='{.status.appArchivePath}'
如果無法使用 BackupRestore CR ,您可以使用步驟 2 所述的命令來檢視備份內容。 -
spec.namespaceMapping: 將還原作業的來源命名空間對應至目的地命名空間。以環境中的資訊取代
my-source-namespace`和 `my-destination-namespace
。例如:
apiVersion: protect.trident.netapp.io/v1 kind: BackupRestore metadata: name: my-cr-name namespace: my-destination-namespace spec: appVaultRef: appvault-name appArchivePath: my-backup-path namespaceMapping: [{"source": "my-source-namespace", "destination": "my-destination-namespace"}]
-
-
在您以正確的值填入檔案之後
trident-protect-backup-restore-cr.yaml
、請套用 CR :kubectl apply -f trident-protect-backup-restore-cr.yaml
-
使用下列命令還原應用程式,將方括號中的值取代為您環境中的資訊。命名空間對應引數使用以冒號分隔的命名空間,將來源命名空間對應到正確的目的地命名空間,格式為 source1:dest1 , source2:dest2 。例如:
tridentctl-protect create backuprestore <restore_name> \ --namespace-mapping <source_to_destination_namespace_mapping> \ --appvault <appvault_name> \ --path <backup_path> \ --context <destination_cluster_name> \ -n <application_namespace>
從快照還原至不同的命名空間
您可以使用自訂資源( CR )檔案、將資料從快照還原至不同的命名空間或原始來源命名空間。當您使用 SnapshotRestore CR 將快照還原至不同的命名空間時, Trident Protect 會在新命名空間中還原應用程式,並為還原的應用程式建立應用程式 CR 。若要保護還原的應用程式,請建立隨需備份或快照,或建立保護排程。
|
SnapshotRestore 支持 `spec.storageClassMapping`屬性,但僅當來源和目標儲存類別使用相同的儲存後端。如果您嘗試恢復到 `StorageClass`如果使用不同的儲存後端,則復原操作將會失敗。 |
確保 AWS 工作階段權杖到期時間足以執行任何長時間執行的 S3 還原作業。如果 Token 在還原作業期間過期,作業可能會失敗。
-
如需檢查目前工作階段權杖到期時間的詳細資訊,請參閱 "AWS API 文件"。
-
如需 AWS 資源認證的詳細資訊,請參閱 "AWS IAM 文件"。
-
建立自訂資源( CR )檔案並命名為
trident-protect-snapshot-restore-cr.yaml
。 -
在您建立的檔案中,設定下列屬性:
-
* metadata.name*: ( _required )此自訂資源的名稱;為您的環境選擇唯一且合理的名稱。
-
spec.appVaultRef :( _required _ )儲存快照內容的 AppVault 名稱。
-
spec.appArchivePath :在 AppVault 中儲存快照內容的路徑。您可以使用下列命令來尋找此路徑:
kubectl get snapshots <SNAPHOT_NAME> -n my-app-namespace -o jsonpath='{.status.appArchivePath}'
-
spec.namespaceMapping: 將還原作業的來源命名空間對應至目的地命名空間。以環境中的資訊取代
my-source-namespace`和 `my-destination-namespace
。--- apiVersion: protect.trident.netapp.io/v1 kind: SnapshotRestore metadata: name: my-cr-name namespace: my-app-namespace spec: appVaultRef: appvault-name appArchivePath: my-snapshot-path namespaceMapping: [{"source": "my-source-namespace", "destination": "my-destination-namespace"}]
-
-
( Optional )如果您只需要選取應用程式的某些資源來還原,請新增篩選功能,以包含或排除標記有特定標籤的資源:
Trident Protect 會自動選取部分資源,因為這些資源與您選取的資源之間的關係。例如,如果您選取持續磁碟區宣告資源,而且該資源有相關聯的 Pod ,則 Trident Protect 也會還原相關聯的 Pod 。 -
resourceFilter.resourceSelectionCriteria :(篩選所需)使用 `Include`或包含或 `Exclude`排除在 resourceMatchers 中定義的資源。新增下列資源配置工具參數、以定義要納入或排除的資源:
-
resourceFilter.resourceMatchers :一組 resourceMatcher 物件。如果您在此陣列中定義多個元素,它們會比對為 OR 作業,而每個元素(群組,種類,版本)內的欄位會比對為 AND 作業。
-
resourceMatchers[].group :( Optional )要篩選的資源群組。
-
resourceMatchers[].cher :( Optional )要篩選的資源種類。
-
resourceMatchers[].version :( Optional )要篩選的資源版本。
-
要篩選之資源的 Kubernetes metadata.name 欄位中的 * resourceMatchers[].names* :( Optional )名稱。
-
要篩選之資源的 Kubernetes metadata.name 欄位中的 * resourceMatchers[].names* :( Optional )命名空間。
-
資源的 Kubernetes metadata.name 欄位中的 *resourceMatchers[].labelSelectors * :( Optional ) Label 選取器字串,如中所定義 "Kubernetes文件"。例如
"trident.netapp.io/os=linux"
:。例如:
-
-
spec: resourceFilter: resourceSelectionCriteria: "Include" resourceMatchers: - group: my-resource-group-1 kind: my-resource-kind-1 version: my-resource-version-1 names: ["my-resource-names"] namespaces: ["my-resource-namespaces"] labelSelectors: ["trident.netapp.io/os=linux"] - group: my-resource-group-2 kind: my-resource-kind-2 version: my-resource-version-2 names: ["my-resource-names"] namespaces: ["my-resource-namespaces"] labelSelectors: ["trident.netapp.io/os=linux"]
-
-
在您以正確的值填入檔案之後
trident-protect-snapshot-restore-cr.yaml
、請套用 CR :kubectl apply -f trident-protect-snapshot-restore-cr.yaml
-
將快照還原至不同的命名空間,以環境中的資訊取代方括號中的值。
-
snapshot`引數使用格式的命名空間和快照名稱 `<namespace>/<name>
。 -
此
namespace-mapping`引數使用以冒號分隔的命名空間,以格式將來源命名空間對應至正確的目的地命名空間 `source1:dest1,source2:dest2
。例如:
tridentctl-protect create snapshotrestore <my_restore_name> \ --snapshot <namespace/snapshot_to_restore> \ --namespace-mapping <source_to_destination_namespace_mapping> \ -n <application_namespace>
-
從快照還原至原始命名空間
您可以隨時將快照還原至原始命名空間。
確保 AWS 工作階段權杖到期時間足以執行任何長時間執行的 S3 還原作業。如果 Token 在還原作業期間過期,作業可能會失敗。
-
如需檢查目前工作階段權杖到期時間的詳細資訊,請參閱 "AWS API 文件"。
-
如需 AWS 資源認證的詳細資訊,請參閱 "AWS IAM 文件"。
-
建立自訂資源( CR )檔案並命名為
trident-protect-snapshot-ipr-cr.yaml
。 -
在您建立的檔案中,設定下列屬性:
-
* metadata.name*: ( _required )此自訂資源的名稱;為您的環境選擇唯一且合理的名稱。
-
spec.appVaultRef :( _required _ )儲存快照內容的 AppVault 名稱。
-
spec.appArchivePath :在 AppVault 中儲存快照內容的路徑。您可以使用下列命令來尋找此路徑:
kubectl get snapshots <SNAPSHOT_NAME> -n my-app-namespace -o jsonpath='{.status.appArchivePath}'
--- apiVersion: protect.trident.netapp.io/v1 kind: SnapshotInplaceRestore metadata: name: my-cr-name namespace: my-app-namespace spec: appVaultRef: appvault-name appArchivePath: my-snapshot-path
-
-
( Optional )如果您只需要選取應用程式的某些資源來還原,請新增篩選功能,以包含或排除標記有特定標籤的資源:
Trident Protect 會自動選取部分資源,因為這些資源與您選取的資源之間的關係。例如,如果您選取持續磁碟區宣告資源,而且該資源有相關聯的 Pod ,則 Trident Protect 也會還原相關聯的 Pod 。 -
resourceFilter.resourceSelectionCriteria :(篩選所需)使用 `Include`或包含或 `Exclude`排除在 resourceMatchers 中定義的資源。新增下列資源配置工具參數、以定義要納入或排除的資源:
-
resourceFilter.resourceMatchers :一組 resourceMatcher 物件。如果您在此陣列中定義多個元素,它們會比對為 OR 作業,而每個元素(群組,種類,版本)內的欄位會比對為 AND 作業。
-
resourceMatchers[].group :( Optional )要篩選的資源群組。
-
resourceMatchers[].cher :( Optional )要篩選的資源種類。
-
resourceMatchers[].version :( Optional )要篩選的資源版本。
-
要篩選之資源的 Kubernetes metadata.name 欄位中的 * resourceMatchers[].names* :( Optional )名稱。
-
要篩選之資源的 Kubernetes metadata.name 欄位中的 * resourceMatchers[].names* :( Optional )命名空間。
-
資源的 Kubernetes metadata.name 欄位中的 *resourceMatchers[].labelSelectors * :( Optional ) Label 選取器字串,如中所定義 "Kubernetes文件"。例如
"trident.netapp.io/os=linux"
:。例如:
-
-
spec: resourceFilter: resourceSelectionCriteria: "Include" resourceMatchers: - group: my-resource-group-1 kind: my-resource-kind-1 version: my-resource-version-1 names: ["my-resource-names"] namespaces: ["my-resource-namespaces"] labelSelectors: ["trident.netapp.io/os=linux"] - group: my-resource-group-2 kind: my-resource-kind-2 version: my-resource-version-2 names: ["my-resource-names"] namespaces: ["my-resource-namespaces"] labelSelectors: ["trident.netapp.io/os=linux"]
-
-
在您以正確的值填入檔案之後
trident-protect-snapshot-ipr-cr.yaml
、請套用 CR :kubectl apply -f trident-protect-snapshot-ipr-cr.yaml
-
將快照還原至原始命名空間,以環境中的資訊取代方括號中的值。例如:
tridentctl-protect create snapshotinplacerestore <my_restore_name> \ --snapshot <snapshot_to_restore> \ -n <application_namespace>
檢查還原作業的狀態
您可以使用命令列來檢查進行中,已完成或已失敗的還原作業狀態。
-
使用下列命令可擷取還原作業的狀態,以環境中的資訊取代方括號中的值:
kubectl get backuprestore -n <namespace_name> <my_restore_cr_name> -o jsonpath='{.status}'