Skip to main content
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

응용 프로그램을 복원합니다

기여자

Trident Protect를 사용하여 스냅샷 또는 백업에서 애플리케이션을 복원할 수 있습니다. 애플리케이션을 동일한 클러스터로 복구할 경우 기존 스냅샷에서 복구하는 속도가 빨라집니다.

참고 Application Restore 시 해당 Application에 설정된 모든 execution hook이 App으로 복구된다. 복원 후 실행 후크가 있는 경우 복구 작업의 일부로 자동으로 실행됩니다.

백업에서 다른 네임스페이스로 복원합니다

BackupRestore CR을 사용하여 다른 네임스페이스로 백업을 복원할 경우 Trident Protect는 새 네임스페이스에서 응용 프로그램을 복원하지만 복원된 응용 프로그램은 Trident Protect로 자동으로 보호되지 않습니다. 복원된 응용 프로그램을 보호하려면 복원된 응용 프로그램에 대해 Trident Protect로 보호되도록 응용 프로그램 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-source-namespace`및 를 `my-destination-namespace 사용자 환경의 정보로 바꿉니다.

    • spec.storageClassMapping: 복원 작업의 소스 스토리지 클래스를 대상 스토리지 클래스로 매핑하는 것입니다. destinationStorageClass`및 를 `sourceStorageClass 사용자 환경의 정보로 바꿉니다.

      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>

스냅샷에서 다른 네임스페이스로 복구합니다

사용자 지정 리소스(CR) 파일을 사용하여 스냅샷에서 데이터를 다른 네임스페이스 또는 원래 소스 네임스페이스로 복원할 수 있습니다. SnapshotRestore CR을 사용하여 스냅샷을 다른 네임스페이스로 복구하는 경우 Trident Protect는 새 네임스페이스에서 애플리케이션을 복원하지만 복원된 애플리케이션은 Trident Protect로 자동으로 보호되지 않습니다. 복원된 응용 프로그램을 보호하려면 복원된 응용 프로그램에 대해 Trident Protect로 보호되도록 응용 프로그램 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-source-namespace`및 를 `my-destination-namespace 사용자 환경의 정보로 바꿉니다.

    • spec.storageClassMapping: 복원 작업의 소스 스토리지 클래스를 대상 스토리지 클래스로 매핑하는 것입니다. destinationStorageClass`및 를 `sourceStorageClass 사용자 환경의 정보로 바꿉니다.

      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`인수에 네임스페이스 및 스냅숏 이름이 형식으로 `<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>

스냅샷에서 원래 네임스페이스로 복구합니다

언제든지 스냅샷을 원래 네임스페이스로 복구할 수 있습니다.

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. 대괄호 안의 값을 사용자 환경의 정보로 대체하여 스냅샷을 원래 네임스페이스로 복원합니다. 예를 들면 다음과 같습니다.

    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}'