Skip to main content
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

使用 Trident Protect 移轉應用程式

貢獻者

您可以將備份或快照資料還原至不同的叢集或儲存類別,在叢集或儲存類別之間移轉應用程式。

註 當您移轉應用程式時,為應用程式設定的所有執行掛鉤都會隨應用程式一起移轉。如果存在還原後執行掛鉤,則會在還原作業中自動執行。

備份與還原作業

若要針對下列案例執行備份與還原作業,您可以自動化特定的備份與還原工作。

複製到同一個叢集

若要將應用程式複製到同一個叢集,請建立快照或備份,然後將資料還原到同一個叢集。

步驟
  1. 執行下列其中一項:

  2. 在同一個叢集上,視您建立的是快照或備份而定,請執行下列其中一項:

複製到不同叢集

若要將應用程式複製到不同的叢集(執行跨叢集複製),請在來源叢集上建立備份,然後將備份還原到不同的叢集。請確定目的地叢集上已安裝 Trident Protect 。

註 您可以使用在不同叢集之間複寫應用程式"SnapMirror 複寫"
步驟
  1. "建立備份"

  2. 請確定已在目的地叢集上設定包含備份之物件儲存貯體的 AppVault CR 。

  3. 在目的地叢集上"從備份還原資料",。

將應用程式從一個儲存類別移轉至另一個儲存類別

您可以將快照還原至不同的目的地儲存類別,將應用程式從一個儲存類別移轉至不同的儲存類別。

例如(從還原 CR 中排除機密):

apiVersion: protect.trident.netapp.io/v1
kind: SnapshotRestore
metadata:
  name: "${snapshotRestoreCRName}"
spec:
  appArchivePath: "${snapshotArchivePath}"
  appVaultRef: "${appVaultCRName}"
  namespaceMapping:
    destination: "${destinationNamespace}"
    source: "${sourceNamespace}"
  storageClassMapping:
    destination: "${destinationStorageClass}"
    source: "${sourceStorageClass}"
  resourceFilter:
    resourceMatchers:
      kind: Secret
      version: v1
    resourceSelectionCriteria: exclude
使用 CR 還原快照
步驟
  1. 建立自訂資源( CR )檔案並命名為 trident-protect-snapshot-restore-cr.yaml

  2. 在您建立的檔案中,設定下列屬性:

    • * metadata.name*: ( _required )此自訂資源的名稱;為您的環境選擇唯一且合理的名稱。

    • spec.appArchivePath :在 AppVault 中儲存快照內容的路徑。您可以使用下列命令來尋找此路徑:

      kubectl get snapshots <my-snapshot-name> -n trident-protect -o jsonpath='{.status.appArchivePath}'
    • spec.appVaultRef :( _required _ )儲存快照內容的 AppVault 名稱。

    • spec.namespaceMapping: 將還原作業的來源命名空間對應至目的地命名空間。以環境中的資訊取代 my-source-namespace`和 `my-destination-namespace

      ---
      apiVersion: protect.trident.netapp.io/v1
      kind: SnapshotRestore
      metadata:
        name: my-cr-name
        namespace: trident-protect
      spec:
        appArchivePath: my-snapshot-path
        appVaultRef: appvault-name
        namespaceMapping: [{"source": "my-source-namespace", "destination": "my-destination-namespace"}]
  3. 或者,如果您只需要選取要還原的應用程式特定資源,請新增篩選功能,以包含或排除標記有特定標籤的資源:

    • *resourceFilter.resourceSelectionCriteria :(篩選所需)用於 `include or 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"]
  4. 在您以正確的值填入檔案之後 trident-protect-snapshot-restore-cr.yaml 、請套用 CR :

    kubectl apply -f trident-protect-snapshot-restore-cr.yaml
使用 CLI 還原快照
步驟
  1. 將快照還原至不同的命名空間,以環境中的資訊取代方括號中的值。

    • 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>