5.5. OADP のユースケース


5.5.1. OpenShift API for Data Protection と Red Hat OpenShift Data Foundation (ODF) を使用したバックアップ

以下は、OADP と ODF を使用してアプリケーションをバックアップするユースケースです。

5.5.1.1. OADP と ODF を使用したアプリケーションのバックアップ

このユースケースでは、OADP を使用してアプリケーションをバックアップし、Red Hat OpenShift Data Foundation (ODF) によって提供されるオブジェクトストレージにバックアップを保存します。

  • Backup Storage Location を設定するために、Object Bucket Claim (OBC) を作成します。ODF を使用して、Amazon S3 互換のオブジェクトストレージバケットを設定します。ODF は、MultiCloud Object Gateway (NooBaa MCG) と Ceph Object Gateway (RADOS Gateway (RGW) とも呼ばれる) オブジェクトストレージサービスを提供します。このユースケースでは、Backup Storage Location として NooBaa MCG を使用します。
  • aws プロバイダープラグインを使用して、OADP で NooBaa MCG サービスを使用します。
  • Backup Storage Location (BSL) を使用して Data Protection Application (DPA) を設定します。
  • バックアップカスタムリソース (CR) を作成し、バックアップするアプリケーションの namespace を指定します。
  • バックアップを作成して検証します。

前提条件

  • OADP Operator をインストールした。
  • ODF Operator をインストールした。
  • 別の namespace で実行されているデータベースを持つアプリケーションがある。

手順

  1. 次の例に示すように、NooBaa MCG バケットを要求する OBC マニフェストファイルを作成します。

    OBC の例

    Copy to Clipboard Toggle word wrap
    apiVersion: objectbucket.io/v1alpha1
    kind: ObjectBucketClaim
    metadata:
      name: test-obc 
    1
    
      namespace: openshift-adp
    spec:
      storageClassName: openshift-storage.noobaa.io
      generateBucketName: test-backup-bucket 
    2

    1
    Object Bucket Claim の名前。
    2
    バケットの名前。
  2. 次のコマンドを実行して OBC を作成します。

    Copy to Clipboard Toggle word wrap
    $ oc create -f <obc_file_name> 
    1
    1
    Object Bucket Claim マニフェストのファイル名を指定します。
  3. OBC を作成すると、ODF が Object Bucket Claim と同じ名前の secretconfig map を作成します。secret にはバケットの認証情報が含まれており、config map にはバケットにアクセスするための情報が含まれています。生成された config map からバケット名とバケットホストを取得するには、次のコマンドを実行します。

    Copy to Clipboard Toggle word wrap
    $ oc extract --to=- cm/test-obc 
    1
    1
    test-obc は OBC の名前です。

    出力例

    Copy to Clipboard Toggle word wrap
    # BUCKET_NAME
    backup-c20...41fd
    # BUCKET_PORT
    443
    # BUCKET_REGION
    
    # BUCKET_SUBREGION
    
    # BUCKET_HOST
    s3.openshift-storage.svc

  4. 生成された secret からバケットの認証情報を取得するには、次のコマンドを実行します。

    Copy to Clipboard Toggle word wrap
    $ oc extract --to=- secret/test-obc

    出力例

    Copy to Clipboard Toggle word wrap
    # AWS_ACCESS_KEY_ID
    ebYR....xLNMc
    # AWS_SECRET_ACCESS_KEY
    YXf...+NaCkdyC3QPym

  5. 次のコマンドを実行して、openshift-storage namespace の s3 ルートから S3 エンドポイントのパブリック URL を取得します。

    Copy to Clipboard Toggle word wrap
    $ oc get route s3 -n openshift-storage
  6. 次のコマンドに示すように、オブジェクトバケットの認証情報を含む cloud-credentials ファイルを作成します。

    Copy to Clipboard Toggle word wrap
    [default]
    aws_access_key_id=<AWS_ACCESS_KEY_ID>
    aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
  7. 次のコマンドに示すように、cloud-credentials ファイルの内容を使用して cloud-credentials シークレットを作成します。

    Copy to Clipboard Toggle word wrap
    $ oc create secret generic \
      cloud-credentials \
      -n openshift-adp \
      --from-file cloud=cloud-credentials
  8. 次の例に示すように、Data Protection Application (DPA) を設定します。

    DPA の例

    Copy to Clipboard Toggle word wrap
    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: oadp-backup
      namespace: openshift-adp
    spec:
      configuration:
        nodeAgent:
          enable: true
          uploaderType: kopia
        velero:
          defaultPlugins:
            - aws
            - openshift
            - csi
          defaultSnapshotMoveData: true 
    1
    
      backupLocations:
        - velero:
            config:
              profile: "default"
              region: noobaa
              s3Url: https://s3.openshift-storage.svc 
    2
    
              s3ForcePathStyle: "true"
              insecureSkipTLSVerify: "true"
            provider: aws
            default: true
            credential:
              key: cloud
              name:  cloud-credentials
            objectStorage:
              bucket: <bucket_name> 
    3
    
              prefix: oadp

    1
    true に設定し、OADP Data Mover を使用して Container Storage Interface (CSI) スナップショットをリモートオブジェクトストレージに移動できるようにします。
    2
    これは ODF ストレージの S3 URL です。
    3
    バケット名を指定します。
  9. 次のコマンドを実行して DPA を作成します。

    Copy to Clipboard Toggle word wrap
    $ oc apply -f <dpa_filename>
  10. 次のコマンドを実行して、DPA が正常に作成されたことを確認します。出力例から、status オブジェクトの type フィールドが Reconciled に設定されていることがわかります。これは、DPA が正常に作成されたことを意味します。

    Copy to Clipboard Toggle word wrap
    $ oc get dpa -o yaml

    出力例

    Copy to Clipboard Toggle word wrap
    apiVersion: v1
    items:
    - apiVersion: oadp.openshift.io/v1alpha1
      kind: DataProtectionApplication
      metadata:
        namespace: openshift-adp
        #...#
      spec:
        backupLocations:
        - velero:
            config:
              #...#
      status:
        conditions:
        - lastTransitionTime: "20....9:54:02Z"
          message: Reconcile complete
          reason: Complete
          status: "True"
          type: Reconciled
    kind: List
    metadata:
      resourceVersion: ""

  11. 次のコマンドを実行して、Backup Storage Location (BSL) が使用可能であることを確認します。

    Copy to Clipboard Toggle word wrap
    $ oc get backupstoragelocations.velero.io -n openshift-adp

    出力例

    Copy to Clipboard Toggle word wrap
    NAME           PHASE       LAST VALIDATED   AGE   DEFAULT
    dpa-sample-1   Available   3s               15s   true

  12. 次の例に示すように、バックアップ CR を設定します。

    バックアップ CR の例

    Copy to Clipboard Toggle word wrap
    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: test-backup
      namespace: openshift-adp
    spec:
      includedNamespaces:
      - <application_namespace> 
    1

    1
    バックアップするアプリケーションの namespace を指定します。
  13. 次のコマンドを実行してバックアップ CR を作成します。

    Copy to Clipboard Toggle word wrap
    $ oc apply -f <backup_cr_filename>

検証

  • 次のコマンドを実行して、バックアップオブジェクトが Completed フェーズにあることを確認します。詳細は、出力例を参照してください。

    Copy to Clipboard Toggle word wrap
    $ oc describe backup test-backup -n openshift-adp

    出力例

    Copy to Clipboard Toggle word wrap
    Name:         test-backup
    Namespace:    openshift-adp
    # ....#
    Status:
      Backup Item Operations Attempted:  1
      Backup Item Operations Completed:  1
      Completion Timestamp:              2024-09-25T10:17:01Z
      Expiration:                        2024-10-25T10:16:31Z
      Format Version:                    1.1.0
      Hook Status:
      Phase:  Completed
      Progress:
        Items Backed Up:  34
        Total Items:      34
      Start Timestamp:    2024-09-25T10:16:31Z
      Version:            1
    Events:               <none>

5.5.2. OpenShift API for Data Protection (OADP) による復元のユースケース

以下は、OADP を使用してバックアップを別の namespace に復元するユースケースです。

5.5.2.1. OADP を使用してアプリケーションを別の namespace に復元する

OADP を使用して、アプリケーションのバックアップを、新しいターゲット namespace の test-restore-application に復元します。バックアップを復元するには、次の例に示すように、復元カスタムリソース (CR) を作成します。この復元 CR では、バックアップに含めたアプリケーションの namespace を、ソース namespace が参照します。その後、新しい復元先の namespace にプロジェクトを切り替えてリソースを確認することで、復元を検証します。

前提条件

  • OADP Operator をインストールした。
  • 復元するアプリケーションのバックアップがある。

手順

  1. 次の例に示すように、復元 CR を作成します。

    復元 CR の例

    Copy to Clipboard Toggle word wrap
    apiVersion: velero.io/v1
    kind: Restore
    metadata:
      name: test-restore 
    1
    
      namespace: openshift-adp
    spec:
      backupName: <backup_name> 
    2
    
      restorePVs: true
      namespaceMapping:
        <application_namespace>: test-restore-application 
    3

    1
    復元 CR の名前。
    2
    バックアップの名前を指定します。
    3
    namespaceMapping は、ソースアプリケーションの namespace をターゲットアプリケーションの namespace にマップします。バックアップしたアプリケーションの namespace を指定します。test-restore-application は、バックアップを復元するターゲット namespace です。
  2. 次のコマンドを実行して復元 CR を適用します。

    Copy to Clipboard Toggle word wrap
    $ oc apply -f <restore_cr_filename>

検証

  1. 次のコマンドを実行して、復元が Completed フェーズにあることを確認します。

    Copy to Clipboard Toggle word wrap
    $ oc describe restores.velero.io <restore_name> -n openshift-adp
  2. 次のコマンドを実行して、復元先の namespace test-restore-application に切り替えます。

    Copy to Clipboard Toggle word wrap
    $ oc project test-restore-application
  3. 次のコマンドを実行して、永続ボリューム要求 (pvc)、サービス (svc)、デプロイメント、シークレット、config map などの復元されたリソースを確認します。

    Copy to Clipboard Toggle word wrap
    $ oc get pvc,svc,deployment,secret,configmap

    出力例

    Copy to Clipboard Toggle word wrap
    NAME                          STATUS   VOLUME
    persistentvolumeclaim/mysql   Bound    pvc-9b3583db-...-14b86
    
    NAME               TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
    service/mysql      ClusterIP   172....157     <none>        3306/TCP   2m56s
    service/todolist   ClusterIP   172.....15     <none>        8000/TCP   2m56s
    
    NAME                    READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/mysql   0/1     1            0           2m55s
    
    NAME                                         TYPE                      DATA   AGE
    secret/builder-dockercfg-6bfmd               kubernetes.io/dockercfg   1      2m57s
    secret/default-dockercfg-hz9kz               kubernetes.io/dockercfg   1      2m57s
    secret/deployer-dockercfg-86cvd              kubernetes.io/dockercfg   1      2m57s
    secret/mysql-persistent-sa-dockercfg-rgp9b   kubernetes.io/dockercfg   1      2m57s
    
    NAME                                 DATA   AGE
    configmap/kube-root-ca.crt           1      2m57s
    configmap/openshift-service-ca.crt   1      2m57s

5.5.3. バックアップ時の自己署名 CA 証明書の追加

自己署名認証局 (CA) 証明書を Data Protection Application (DPA) に含めてから、アプリケーションをバックアップできます。バックアップは、Red Hat OpenShift Data Foundation (ODF) が提供する NooBaa バケットに保存します。

5.5.3.1. アプリケーションとその自己署名 CA 証明書のバックアップ

ODF によって提供される s3.openshift-storage.svc サービスは、自己署名サービス CA で署名された Transport Layer Security (TLS) プロトコル証明書を使用します。

certificate signed by unknown authority エラーを防ぐには、DataProtectionApplication カスタムリソース (CR) の Backup Storage Location (BSL) セクションに自己署名 CA 証明書を含める必要があります。この場合、次のタスクを完了する必要があります。

  • Object Bucket Claim (OBC) を作成して、NooBaa バケットを要求します。
  • バケットの詳細を抽出します。
  • DataProtectionApplication CR に自己署名 CA 証明書を含めます。
  • アプリケーションをバックアップします。

前提条件

  • OADP Operator をインストールした。
  • ODF Operator をインストールした。
  • 別の namespace で実行されているデータベースを持つアプリケーションがある。

手順

  1. 次の例に示すように、NooBaa バケットを要求する OBC マニフェストを作成します。

    ObjectBucketClaim CR の例

    Copy to Clipboard Toggle word wrap
    apiVersion: objectbucket.io/v1alpha1
    kind: ObjectBucketClaim
    metadata:
      name: test-obc 
    1
    
      namespace: openshift-adp
    spec:
      storageClassName: openshift-storage.noobaa.io
      generateBucketName: test-backup-bucket 
    2

    1
    Object Bucket Claim の名前を指定します。
    2
    バケットの名前を指定します。
  2. 次のコマンドを実行して OBC を作成します。

    Copy to Clipboard Toggle word wrap
    $ oc create -f <obc_file_name>
  3. OBC を作成すると、ODF が Object Bucket Claim と同じ名前の secretConfigMap を作成します。secret オブジェクトにはバケットの認証情報が含まれ、ConfigMap オブジェクトにはバケットにアクセスするための情報が含まれています。生成された config map からバケット名とバケットホストを取得するには、次のコマンドを実行します。

    Copy to Clipboard Toggle word wrap
    $ oc extract --to=- cm/test-obc 
    1
    1
    OBC の名前は test-obc です。

    出力例

    Copy to Clipboard Toggle word wrap
    # BUCKET_NAME
    backup-c20...41fd
    # BUCKET_PORT
    443
    # BUCKET_REGION
    
    # BUCKET_SUBREGION
    
    # BUCKET_HOST
    s3.openshift-storage.svc

  4. secret オブジェクトからバケット認証情報を取得するには、次のコマンドを実行します。

    Copy to Clipboard Toggle word wrap
    $ oc extract --to=- secret/test-obc

    出力例

    Copy to Clipboard Toggle word wrap
    # AWS_ACCESS_KEY_ID
    ebYR....xLNMc
    # AWS_SECRET_ACCESS_KEY
    YXf...+NaCkdyC3QPym

  5. 次の設定例を使用して、オブジェクトバケットの認証情報を含む cloud-credentials ファイルを作成します。

    Copy to Clipboard Toggle word wrap
    [default]
    aws_access_key_id=<AWS_ACCESS_KEY_ID>
    aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
  6. 次のコマンドを実行して、cloud-credentials ファイルの内容を使用して cloud-credentials シークレットを作成します。

    Copy to Clipboard Toggle word wrap
    $ oc create secret generic \
      cloud-credentials \
      -n openshift-adp \
      --from-file cloud=cloud-credentials
  7. 次のコマンドを実行して、openshift-service-ca.crt config map からサービス CA 証明書を抽出します。証明書を Base64 形式で必ずエンコードし、次のステップで使用する値をメモしてください。

    Copy to Clipboard Toggle word wrap
    $ oc get cm/openshift-service-ca.crt \
      -o jsonpath='{.data.service-ca\.crt}' | base64 -w0; echo

    出力例

    Copy to Clipboard Toggle word wrap
    LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0...
    ....gpwOHMwaG9CRmk5a3....FLS0tLS0K

  8. 次の例に示すように、バケット名と CA 証明書を使用して DataProtectionApplication CR マニフェストファイルを設定します。

    DataProtectionApplication CR の例

    Copy to Clipboard Toggle word wrap
    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: oadp-backup
      namespace: openshift-adp
    spec:
      configuration:
        nodeAgent:
          enable: true
          uploaderType: kopia
        velero:
          defaultPlugins:
            - aws
            - openshift
            - csi
          defaultSnapshotMoveData: true
      backupLocations:
        - velero:
            config:
              profile: "default"
              region: noobaa
              s3Url: https://s3.openshift-storage.svc
              s3ForcePathStyle: "true"
              insecureSkipTLSVerify: "false" 
    1
    
            provider: aws
            default: true
            credential:
              key: cloud
              name:  cloud-credentials
            objectStorage:
              bucket: <bucket_name> 
    2
    
              prefix: oadp
              caCert: <ca_cert> 
    3

    1
    insecureSkipTLSVerify フラグは true または false に設定できます。"true" に設定すると、SSL/TLS セキュリティーが無効になります。false に設定すると、SSL/TLS セキュリティーが有効になります。
    2
    前のステップで抽出したバケットの名前を指定します。
    3
    前のステップの Base64 でエンコードした証明書をコピーして貼り付けます。
  9. 次のコマンドを実行して、DataProtectionApplication CR を作成します。

    Copy to Clipboard Toggle word wrap
    $ oc apply -f <dpa_filename>
  10. 次のコマンドを実行して、DataProtectionApplication CR が正常に作成されたことを確認します。

    Copy to Clipboard Toggle word wrap
    $ oc get dpa -o yaml

    出力例

    Copy to Clipboard Toggle word wrap
    apiVersion: v1
    items:
    - apiVersion: oadp.openshift.io/v1alpha1
      kind: DataProtectionApplication
      metadata:
        namespace: openshift-adp
        #...#
      spec:
        backupLocations:
        - velero:
            config:
              #...#
      status:
        conditions:
        - lastTransitionTime: "20....9:54:02Z"
          message: Reconcile complete
          reason: Complete
          status: "True"
          type: Reconciled
    kind: List
    metadata:
      resourceVersion: ""

  11. 次のコマンドを実行して、Backup Storage Location (BSL) が使用可能であることを確認します。

    Copy to Clipboard Toggle word wrap
    $ oc get backupstoragelocations.velero.io -n openshift-adp

    出力例

    Copy to Clipboard Toggle word wrap
    NAME           PHASE       LAST VALIDATED   AGE   DEFAULT
    dpa-sample-1   Available   3s               15s   true

  12. 次の例を使用して、Backup CR を設定します。

    Backup CR の例

    Copy to Clipboard Toggle word wrap
    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: test-backup
      namespace: openshift-adp
    spec:
      includedNamespaces:
      - <application_namespace> 
    1

    1
    バックアップするアプリケーションの namespace を指定します。
  13. 次のコマンドを実行して Backup CR を作成します。

    Copy to Clipboard Toggle word wrap
    $ oc apply -f <backup_cr_filename>

検証

  • 次のコマンドを実行して、Backup オブジェクトが Completed フェーズにあることを確認します。

    Copy to Clipboard Toggle word wrap
    $ oc describe backup test-backup -n openshift-adp

    出力例

    Copy to Clipboard Toggle word wrap
    Name:         test-backup
    Namespace:    openshift-adp
    # ....#
    Status:
      Backup Item Operations Attempted:  1
      Backup Item Operations Completed:  1
      Completion Timestamp:              2024-09-25T10:17:01Z
      Expiration:                        2024-10-25T10:16:31Z
      Format Version:                    1.1.0
      Hook Status:
      Phase:  Completed
      Progress:
        Items Backed Up:  34
        Total Items:      34
      Start Timestamp:    2024-09-25T10:16:31Z
      Version:            1
    Events:               <none>

5.5.4. legacy-aws Velero プラグインの使用

AWS S3 互換の Backup Storage Location を使用している場合、アプリケーションのバックアップ中に SignatureDoesNotMatch エラーが発生する可能性があります。このエラーは、一部の Backup Storage Location で、新しい AWS SDK for Go V2 と互換性のない古いバージョンの S3 API がまだ使用されているために発生します。この問題を解決するには、DataProtectionApplication カスタムリソース (CR) で legacy-aws Velero プラグインを使用できます。legacy-aws Velero プラグインは、従来の S3 API と互換性のある古い AWS SDK for Go V1 を使用します。これによりバックアップが正常に実行されます。

5.5.4.1. DataProtectionApplication CR で legacy-aws Velero プラグインを使用する

次のユースケースでは、legacy-aws Velero プラグインを使用して DataProtectionApplication CR を設定し、アプリケーションをバックアップします。

注記

選択した Backup Storage Location に応じて、DataProtectionApplication CR で legacy-aws または aws プラグインのいずれかを使用できます。DataProtectionApplication CR で両方のプラグインを使用すると、aws and legacy-aws can not be both specified in DPA spec.configuration.velero.defaultPlugins というエラーが発生します。

前提条件

  • OADP Operator がインストールされている。
  • バックアップの場所として AWS S3 互換のオブジェクトストレージが設定されている。
  • 別の namespace で実行されているデータベースを持つアプリケーションがある。

手順

  1. 次の例に示すように、legacy-aws Velero プラグインを使用するように DataProtectionApplication CR を設定します。

    DataProtectionApplication CR の例

    Copy to Clipboard Toggle word wrap
    apiVersion: oadp.openshift.io/v1alpha1
    kind: DataProtectionApplication
    metadata:
      name: oadp-backup
      namespace: openshift-adp
    spec:
      configuration:
        nodeAgent:
          enable: true
          uploaderType: kopia
        velero:
          defaultPlugins:
            - legacy-aws 
    1
    
            - openshift
            - csi
          defaultSnapshotMoveData: true
      backupLocations:
        - velero:
            config:
              profile: "default"
              region: noobaa
              s3Url: https://s3.openshift-storage.svc
              s3ForcePathStyle: "true"
              insecureSkipTLSVerify: "true"
            provider: aws
            default: true
            credential:
              key: cloud
              name:  cloud-credentials
            objectStorage:
              bucket: <bucket_name> 
    2
    
              prefix: oadp

    1
    legacy-aws プラグインを使用します。
    2
    バケット名を指定します。
  2. 次のコマンドを実行して、DataProtectionApplication CR を作成します。

    Copy to Clipboard Toggle word wrap
    $ oc apply -f <dpa_filename>
  3. 次のコマンドを実行して、DataProtectionApplication CR が正常に作成されたことを確認します。出力例から、status オブジェクトの type フィールドが Reconciled に設定され、status フィールドが "True" に設定されていることがわかります。このステータスは、DataProtectionApplication CR が正常に作成されたことを示します。

    Copy to Clipboard Toggle word wrap
    $ oc get dpa -o yaml

    出力例

    Copy to Clipboard Toggle word wrap
    apiVersion: v1
    items:
    - apiVersion: oadp.openshift.io/v1alpha1
      kind: DataProtectionApplication
      metadata:
        namespace: openshift-adp
        #...#
      spec:
        backupLocations:
        - velero:
            config:
              #...#
      status:
        conditions:
        - lastTransitionTime: "20....9:54:02Z"
          message: Reconcile complete
          reason: Complete
          status: "True"
          type: Reconciled
    kind: List
    metadata:
      resourceVersion: ""

  4. 次のコマンドを実行して、Backup Storage Location (BSL) が使用可能であることを確認します。

    Copy to Clipboard Toggle word wrap
    $ oc get backupstoragelocations.velero.io -n openshift-adp

    出力例

    Copy to Clipboard Toggle word wrap
    NAME           PHASE       LAST VALIDATED   AGE   DEFAULT
    dpa-sample-1   Available   3s               15s   true

  5. 次の例に示すように、Backup CR を設定します。

    バックアップ CR の例

    Copy to Clipboard Toggle word wrap
    apiVersion: velero.io/v1
    kind: Backup
    metadata:
      name: test-backup
      namespace: openshift-adp
    spec:
      includedNamespaces:
      - <application_namespace> 
    1

    1
    バックアップするアプリケーションの namespace を指定します。
  6. 次のコマンドを実行して Backup CR を作成します。

    Copy to Clipboard Toggle word wrap
    $ oc apply -f <backup_cr_filename>

検証

  • 次のコマンドを実行して、バックアップオブジェクトが Completed フェーズにあることを確認します。詳細は、出力例を参照してください。

    Copy to Clipboard Toggle word wrap
    $ oc describe backups.velero.io test-backup -n openshift-adp

    出力例

    Copy to Clipboard Toggle word wrap
    Name:         test-backup
    Namespace:    openshift-adp
    # ....#
    Status:
      Backup Item Operations Attempted:  1
      Backup Item Operations Completed:  1
      Completion Timestamp:              2024-09-25T10:17:01Z
      Expiration:                        2024-10-25T10:16:31Z
      Format Version:                    1.1.0
      Hook Status:
      Phase:  Completed
      Progress:
        Items Backed Up:  34
        Total Items:      34
      Start Timestamp:    2024-09-25T10:16:31Z
      Version:            1
    Events:               <none>

5.5.5. ROSA STS を使用する OADP 上のワークロードのバックアップ

5.5.5.1. OADP と ROSA STS を使用したバックアップの実行

次の hello-world アプリケーションの例では、永続ボリューム (PV) がアタッチされていません。Red Hat OpenShift Service on AWS (ROSA) STS を使用して、OpenShift API for Data Protection (OADP) でバックアップを実行します。

どちらの Data Protection Application (DPA) 設定も機能します。

  1. 次のコマンドを実行して、バックアップするワークロードを作成します。

    Copy to Clipboard Toggle word wrap
    $ oc create namespace hello-world
    Copy to Clipboard Toggle word wrap
    $ oc new-app -n hello-world --image=docker.io/openshift/hello-openshift
  2. 次のコマンドを実行してルートを公開します。

    Copy to Clipboard Toggle word wrap
    $ oc expose service/hello-openshift -n hello-world
  3. 次のコマンドを実行して、アプリケーションが動作していることを確認します。

    Copy to Clipboard Toggle word wrap
    $ curl `oc get route/hello-openshift -n hello-world -o jsonpath='{.spec.host}'`

    出力例

    Copy to Clipboard Toggle word wrap
    Hello OpenShift!

  4. 次のコマンドを実行して、ワークロードをバックアップします。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc create -f -
      apiVersion: velero.io/v1
      kind: Backup
      metadata:
        name: hello-world
        namespace: openshift-adp
      spec:
        includedNamespaces:
        - hello-world
        storageLocation: ${CLUSTER_NAME}-dpa-1
        ttl: 720h0m0s
    EOF
  5. バックアップが完了するまで待ってから、次のコマンドを実行します。

    Copy to Clipboard Toggle word wrap
    $ watch "oc -n openshift-adp get backup hello-world -o json | jq .status"

    出力例

    Copy to Clipboard Toggle word wrap
    {
      "completionTimestamp": "2022-09-07T22:20:44Z",
      "expiration": "2022-10-07T22:20:22Z",
      "formatVersion": "1.1.0",
      "phase": "Completed",
      "progress": {
        "itemsBackedUp": 58,
        "totalItems": 58
      },
      "startTimestamp": "2022-09-07T22:20:22Z",
      "version": 1
    }

  6. 次のコマンドを実行して、デモワークロードを削除します。

    Copy to Clipboard Toggle word wrap
    $ oc delete ns hello-world
  7. 次のコマンドを実行して、バックアップからワークロードを復元します。

    Copy to Clipboard Toggle word wrap
    $ cat << EOF | oc create -f -
      apiVersion: velero.io/v1
      kind: Restore
      metadata:
        name: hello-world
        namespace: openshift-adp
      spec:
        backupName: hello-world
    EOF
  8. 次のコマンドを実行して、復元が完了するまで待ちます。

    Copy to Clipboard Toggle word wrap
    $ watch "oc -n openshift-adp get restore hello-world -o json | jq .status"

    出力例

    Copy to Clipboard Toggle word wrap
    {
      "completionTimestamp": "2022-09-07T22:25:47Z",
      "phase": "Completed",
      "progress": {
        "itemsRestored": 38,
        "totalItems": 38
      },
      "startTimestamp": "2022-09-07T22:25:28Z",
      "warnings": 9
    }

  9. 次のコマンドを実行して、ワークロードが復元されていることを確認します。

    Copy to Clipboard Toggle word wrap
    $ oc -n hello-world get pods

    出力例

    Copy to Clipboard Toggle word wrap
    NAME                              READY   STATUS    RESTARTS   AGE
    hello-openshift-9f885f7c6-kdjpj   1/1     Running   0          90s

  10. 次のコマンドを実行して JSONPath を確認します。

    Copy to Clipboard Toggle word wrap
    $ curl `oc get route/hello-openshift -n hello-world -o jsonpath='{.spec.host}'`

    出力例

    Copy to Clipboard Toggle word wrap
    Hello OpenShift!

注記

トラブルシューティングのヒントについては、OADP チームの トラブルシューティングドキュメント を参照してください。

5.5.5.2. OADP と ROSA STS を使用してバックアップ後のクラスターをクリーンアップする

この例のバックアップおよび S3 バケットと OpenShift API for Data Protection (OADP) Operator をアンインストールする必要がある場合は、次の手順を実行します。

手順

  1. 次のコマンドを実行して、ワークロードを削除します。

    Copy to Clipboard Toggle word wrap
    $ oc delete ns hello-world
  2. 次のコマンドを実行して、Data Protection Application (DPA) を削除します。

    Copy to Clipboard Toggle word wrap
    $ oc -n openshift-adp delete dpa ${CLUSTER_NAME}-dpa
  3. 次のコマンドを実行して、クラウドストレージを削除します。

    Copy to Clipboard Toggle word wrap
    $ oc -n openshift-adp delete cloudstorage ${CLUSTER_NAME}-oadp
    警告

    このコマンドがハングした場合は、次のコマンドを実行してファイナライザーを削除する必要がある場合があります。

    Copy to Clipboard Toggle word wrap
    $ oc -n openshift-adp patch cloudstorage ${CLUSTER_NAME}-oadp -p '{"metadata":{"finalizers":null}}' --type=merge
  4. Operator が不要になった場合は、次のコマンドを実行して削除します。

    Copy to Clipboard Toggle word wrap
    $ oc -n openshift-adp delete subscription oadp-operator
  5. Operator から namespace を削除します。

    Copy to Clipboard Toggle word wrap
    $ oc delete ns openshift-adp
  6. バックアップおよび復元リソースが不要になった場合は、次のコマンドを実行してクラスターからリソースを削除します。

    Copy to Clipboard Toggle word wrap
    $ oc delete backups.velero.io hello-world
  7. AWS S3 のバックアップ、復元、およびリモートオブジェクトを削除するには、次のコマンドを実行します。

    Copy to Clipboard Toggle word wrap
    $ velero backup delete hello-world
  8. カスタムリソース定義 (CRD) が不要になった場合は、次のコマンドを実行してクラスターから削除します。

    Copy to Clipboard Toggle word wrap
    $ for CRD in `oc get crds | grep velero | awk '{print $1}'`; do oc delete crd $CRD; done
  9. 次のコマンドを実行して、AWS S3 バケットを削除します。

    Copy to Clipboard Toggle word wrap
    $ aws s3 rm s3://${CLUSTER_NAME}-oadp --recursive
    Copy to Clipboard Toggle word wrap
    $ aws s3api delete-bucket --bucket ${CLUSTER_NAME}-oadp
  10. 次のコマンドを実行して、ロールからポリシーを切り離します。

    Copy to Clipboard Toggle word wrap
    $ aws iam detach-role-policy --role-name "${ROLE_NAME}"  --policy-arn "${POLICY_ARN}"
  11. 以下のコマンドを実行してロールを削除します。

    Copy to Clipboard Toggle word wrap
    $ aws iam delete-role --role-name "${ROLE_NAME}"
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat, Inc.