Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

リストアアプリケーション

共同作成者

Trident保護を使用すると、Snapshotまたはバックアップからアプリケーションをリストアできます。同じクラスタにアプリケーションをリストアする場合、既存の Snapshot からのリストアは高速です。

メモ アプリケーションを復元すると、そのアプリケーションに設定されているすべての実行フックがアプリケーションとともに復元されます。リストア後の実行フックがある場合は、リストア処理の一環として自動的に実行されます。

バックアップから別のネームスペースへのリストア

BackupRestore CRを使用して別のネームスペースにバックアップをリストアすると、Trident保護によってアプリケーションが新しいネームスペースにリストアされますが、リストアされたアプリケーションはTrident保護によって自動的に保護されません。リストアされたアプリケーションを保護するには、Trident保護によって保護されるように、リストアされたアプリケーションのアプリケーションCRを作成する必要があります。

メモ 既存のリソースがある別のネームスペースにバックアップをリストアしても、バックアップ内のリソースと名前を共有するリソースは変更されません。バックアップ内のすべてのリソースをリストアするには、ターゲットネームスペースを削除して再作成するか、新しいネームスペースにバックアップをリストアします。
CRの使用
  1. カスタムリソース(CR)ファイルを作成し、という名前を付け `trident-protect-backup-restore-cr.yaml`ます。

  2. 作成したファイルで、次の属性を設定します。

    • * 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-destination-namespace`を、使用している環境の情報に置き換え `my-source-namespace`ます。

    • * spec.storageClassMapping *:リストア処理のソースストレージクラスからデスティネーションストレージクラスへのマッピング。および `sourceStorageClass`を、使用している環境の情報に置き換え `destinationStorageClass`ます。

      apiVersion: protect.trident.netapp.io/v1o
      kind: BackupRestore
      metadata:
        name: my-cr-name
        namespace: my-app-namespace
      spec:
        appArchivePath: my-backup-path
        appVaultRef: appvault-name
        namespaceMapping: [{"source": "my-source-namespace", "destination": "my-destination-namespace"}]
        storageClassMapping:
          destination: "${destinationStorageClass}"
          source: "${sourceStorageClass}"
  3. オプション)リストアするアプリケーションの特定のリソースのみを選択する必要がある場合は、特定のラベルが付いたリソースを含めるか除外するフィルタリングを追加します。

    • resourceFilter.resourceSelectionCriteria:(フィルタリングに必要) include or exclude resourceMatchersで定義されたリソースを含めるか除外するかを指定します。次のresourceMatchersパラメータを追加して、追加または除外するリソースを定義します。

      • resourceFilter.resourceMatchers: resourceMatcherオブジェクトの配列。

        • *resourceMatchers[].group *:(Optional)フィルタリングするリソースのグループ。

        • *resourceMatchers[].kind *:(optional)フィルタリングするリソースの種類。

        • resourceMatchers[].version:(Optional)フィルタリングするリソースのバージョン。

        • * resourceMatchers[].names *:(optional)フィルタリングするリソースのKubernetes metadata.nameフィールドの名前。

        • *resourceMatchers[].namespaces *:(optional)フィルタリングするリソースのKubernetes metadata.nameフィールドの名前空間。

        • *resourceMatchers[].labelSelectors *:(Optional)で定義されているリソースのKubernetes metadata.nameフィールドのラベルセレクタ文字列 "Kubernetes のドキュメント"。例: "trident.netapp.io/os=linux"

          例:

    spec:
      resourceFilter:
        resourceSelectionCriteria: "include"
        resourceMatchers:
          group: my-resource-group
          kind: my-resource-kind
          version: my-resource-version
          names: ["my-resource-names"]
          namespaces: ["my-resource-namespaces"]
          labelSelectors: ["trident.netapp.io/os=linux"]
  4. ファイルに正しい値を入力したら trident-protect-backup-restore-cr.yaml 、CRを適用します。

    kubectl apply -f trident-protect-backup-restore-cr.yaml
CLI を使用します
  1. バックアップを別のネームスペースにリストアします。角かっこ内の値は、使用している環境の情報に置き換えてください。 `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>

バックアップから元のネームスペースへのリストア

バックアップはいつでも元のネームスペースにリストアできます。

CRの使用
  1. カスタムリソース(CR)ファイルを作成し、という名前を付け `trident-protect-backup-ipr-cr.yaml`ます。

  2. 作成したファイルで、次の属性を設定します。

    • * 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
  3. オプション)リストアするアプリケーションの特定のリソースのみを選択する必要がある場合は、特定のラベルが付いたリソースを含めるか除外するフィルタリングを追加します。

    • resourceFilter.resourceSelectionCriteria:(フィルタリングに必要) include or exclude resourceMatchersで定義されたリソースを含めるか除外するかを指定します。次のresourceMatchersパラメータを追加して、追加または除外するリソースを定義します。

      • resourceFilter.resourceMatchers: resourceMatcherオブジェクトの配列。

        • *resourceMatchers[].group *:(Optional)フィルタリングするリソースのグループ。

        • *resourceMatchers[].kind *:(optional)フィルタリングするリソースの種類。

        • resourceMatchers[].version:(Optional)フィルタリングするリソースのバージョン。

        • * resourceMatchers[].names *:(optional)フィルタリングするリソースのKubernetes metadata.nameフィールドの名前。

        • *resourceMatchers[].namespaces *:(optional)フィルタリングするリソースのKubernetes metadata.nameフィールドの名前空間。

        • *resourceMatchers[].labelSelectors *:(Optional)で定義されているリソースのKubernetes metadata.nameフィールドのラベルセレクタ文字列 "Kubernetes のドキュメント"。例: "trident.netapp.io/os=linux"

          例:

    spec:
      resourceFilter:
        resourceSelectionCriteria: "include"
        resourceMatchers:
          group: my-resource-group
          kind: my-resource-kind
          version: my-resource-version
          names: ["my-resource-names"]
          namespaces: ["my-resource-namespaces"]
          labelSelectors: ["trident.netapp.io/os=linux"]
  4. ファイルに正しい値を入力したら trident-protect-backup-ipr-cr.yaml 、CRを適用します。

    kubectl apply -f trident-protect-backup-ipr-cr.yaml
CLI を使用します
  1. バックアップを元のネームスペースにリストアします。角かっこ内の値は、使用している環境の情報に置き換えてください。この `backup`引数では、という形式のネームスペースとバックアップ名を使用し `<namespace>/<name>`ます。例:

    tridentctl protect create backupinplacerestore <my_restore_name> --backup <namespace/backup_to_restore>

Snapshotから別のネームスペースへのリストア

カスタムリソース(CR)ファイルを使用して、スナップショットから別のネームスペースまたは元のソースネームスペースにデータをリストアできます。SnapshotRestore CRを使用して別のネームスペースにSnapshotをリストアすると、Trident保護によって新しいネームスペースにアプリケーションがリストアされますが、リストアされたアプリケーションはTrident保護によって自動的に保護されません。リストアされたアプリケーションを保護するには、Trident保護によって保護されるように、リストアされたアプリケーションのアプリケーションCRを作成する必要があります。

CRの使用
  1. カスタムリソース(CR)ファイルを作成し、という名前を付け `trident-protect-snapshot-restore-cr.yaml`ます。

  2. 作成したファイルで、次の属性を設定します。

    • * 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-destination-namespace`を、使用している環境の情報に置き換え `my-source-namespace`ます。

    • * spec.storageClassMapping *:リストア処理のソースストレージクラスからデスティネーションストレージクラスへのマッピング。および `sourceStorageClass`を、使用している環境の情報に置き換え `destinationStorageClass`ます。

      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"}]
        storageClassMapping:
          destination: "${destinationStorageClass}"
          source: "${sourceStorageClass}"
  3. オプション)リストアするアプリケーションの特定のリソースのみを選択する必要がある場合は、特定のラベルが付いたリソースを含めるか除外するフィルタリングを追加します。

    • resourceFilter.resourceSelectionCriteria:(フィルタリングに必要) include or exclude resourceMatchersで定義されたリソースを含めるか除外するかを指定します。次のresourceMatchersパラメータを追加して、追加または除外するリソースを定義します。

      • resourceFilter.resourceMatchers: resourceMatcherオブジェクトの配列。

        • *resourceMatchers[].group *:(Optional)フィルタリングするリソースのグループ。

        • *resourceMatchers[].kind *:(optional)フィルタリングするリソースの種類。

        • resourceMatchers[].version:(Optional)フィルタリングするリソースのバージョン。

        • * resourceMatchers[].names *:(optional)フィルタリングするリソースのKubernetes metadata.nameフィールドの名前。

        • *resourceMatchers[].namespaces *:(optional)フィルタリングするリソースのKubernetes metadata.nameフィールドの名前空間。

        • *resourceMatchers[].labelSelectors *:(Optional)で定義されているリソースのKubernetes metadata.nameフィールドのラベルセレクタ文字列 "Kubernetes のドキュメント"。例: "trident.netapp.io/os=linux"

          例:

    spec:
      resourceFilter:
        resourceSelectionCriteria: "include"
        resourceMatchers:
          group: my-resource-group
          kind: my-resource-kind
          version: my-resource-version
          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`引数では、という形式のネームスペースと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>

Snapshotから元のネームスペースへのリストア

Snapshotはいつでも元のネームスペースにリストアできます。

CRの使用
  1. カスタムリソース(CR)ファイルを作成し、という名前を付け `trident-protect-snapshot-ipr-cr.yaml`ます。

  2. 作成したファイルで、次の属性を設定します。

    • * 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
  3. オプション)リストアするアプリケーションの特定のリソースのみを選択する必要がある場合は、特定のラベルが付いたリソースを含めるか除外するフィルタリングを追加します。

    • resourceFilter.resourceSelectionCriteria:(フィルタリングに必要) include or exclude resourceMatchersで定義されたリソースを含めるか除外するかを指定します。次のresourceMatchersパラメータを追加して、追加または除外するリソースを定義します。

      • resourceFilter.resourceMatchers: resourceMatcherオブジェクトの配列。

        • *resourceMatchers[].group *:(Optional)フィルタリングするリソースのグループ。

        • *resourceMatchers[].kind *:(optional)フィルタリングするリソースの種類。

        • resourceMatchers[].version:(Optional)フィルタリングするリソースのバージョン。

        • * resourceMatchers[].names *:(optional)フィルタリングするリソースのKubernetes metadata.nameフィールドの名前。

        • *resourceMatchers[].namespaces *:(optional)フィルタリングするリソースのKubernetes metadata.nameフィールドの名前空間。

        • *resourceMatchers[].labelSelectors *:(Optional)で定義されているリソースのKubernetes metadata.nameフィールドのラベルセレクタ文字列 "Kubernetes のドキュメント"。例: "trident.netapp.io/os=linux"

          例:

    spec:
      resourceFilter:
        resourceSelectionCriteria: "include"
        resourceMatchers:
          group: my-resource-group
          kind: my-resource-kind
          version: my-resource-version
          names: ["my-resource-names"]
          namespaces: ["my-resource-namespaces"]
          labelSelectors: ["trident.netapp.io/os=linux"]
  4. ファイルに正しい値を入力したら trident-protect-snapshot-ipr-cr.yaml 、CRを適用します。

    kubectl apply -f trident-protect-snapshot-ipr-cr.yaml
CLI を使用します
  1. Snapshotを元のネームスペースにリストアします。括弧内の値は、環境の情報に置き換えてください。例:

    tridentctl protect create snapshotinplacerestore <my_restore_name> --snapshot <snapshot_to_restore>

リストア処理のステータスの確認

コマンドラインを使用して、実行中、完了、または失敗したリストア処理のステータスを確認できます。

手順
  1. 次のコマンドを使用してリストア処理のステータスを取得し、角かっこ内の値を環境の情報に置き換えます。

    kubectl get backuprestore -n <namespace_name> <my_restore_cr_name> -o jsonpath='{.status}'