4.5. OADP のユースケース
4.5.1. OpenShift API for Data Protection と Red Hat OpenShift Data Foundation (ODF) を使用したバックアップ
以下は、OADP と ODF を使用してアプリケーションをバックアップするユースケースです。
4.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 で実行されているデータベースを持つアプリケーションがある。
手順
次の例に示すように、NooBaa MCG バケットを要求する OBC マニフェストファイルを作成します。
OBC の例
apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: test-obc namespace: openshift-adp spec: storageClassName: openshift-storage.noobaa.io generateBucketName: test-backup-bucket
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 Copy to Clipboard Copied! 次のコマンドを実行して OBC を作成します。
oc create -f <obc_file_name>
$ oc create -f <obc_file_name>
1 Copy to Clipboard Copied! - 1
- Object Bucket Claim マニフェストのファイル名を指定します。
OBC を作成すると、ODF が Object Bucket Claim と同じ名前の
secret
とconfig map
を作成します。secret
にはバケットの認証情報が含まれており、config map
にはバケットにアクセスするための情報が含まれています。生成された config map からバケット名とバケットホストを取得するには、次のコマンドを実行します。oc extract --to=- cm/test-obc
$ oc extract --to=- cm/test-obc
1 Copy to Clipboard Copied! - 1
test-obc
は OBC の名前です。
出力例
BUCKET_NAME BUCKET_PORT BUCKET_REGION BUCKET_SUBREGION BUCKET_HOST
# BUCKET_NAME backup-c20...41fd # BUCKET_PORT 443 # BUCKET_REGION # BUCKET_SUBREGION # BUCKET_HOST s3.openshift-storage.svc
Copy to Clipboard Copied! 生成された
secret
からバケットの認証情報を取得するには、次のコマンドを実行します。oc extract --to=- secret/test-obc
$ oc extract --to=- secret/test-obc
Copy to Clipboard Copied! 出力例
AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
# AWS_ACCESS_KEY_ID ebYR....xLNMc # AWS_SECRET_ACCESS_KEY YXf...+NaCkdyC3QPym
Copy to Clipboard Copied! 次のコマンドを実行して、
openshift-storage
namespace の s3 ルートから S3 エンドポイントのパブリック URL を取得します。oc get route s3 -n openshift-storage
$ oc get route s3 -n openshift-storage
Copy to Clipboard Copied! 次のコマンドに示すように、オブジェクトバケットの認証情報を含む
cloud-credentials
ファイルを作成します。[default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
[default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
Copy to Clipboard Copied! 次のコマンドに示すように、
cloud-credentials
ファイルの内容を使用してcloud-credentials
シークレットを作成します。oc create secret generic \ cloud-credentials \ -n openshift-adp \ --from-file cloud=cloud-credentials
$ oc create secret generic \ cloud-credentials \ -n openshift-adp \ --from-file cloud=cloud-credentials
Copy to Clipboard Copied! 次の例に示すように、Data Protection Application (DPA) を設定します。
DPA の例
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: "true" provider: aws default: true credential: key: cloud name: cloud-credentials objectStorage: bucket: <bucket_name> prefix: oadp
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
Copy to Clipboard Copied! 次のコマンドを実行して DPA を作成します。
oc apply -f <dpa_filename>
$ oc apply -f <dpa_filename>
Copy to Clipboard Copied! 次のコマンドを実行して、DPA が正常に作成されたことを確認します。出力例から、
status
オブジェクトのtype
フィールドがReconciled
に設定されていることがわかります。これは、DPA が正常に作成されたことを意味します。oc get dpa -o yaml
$ oc get dpa -o yaml
Copy to Clipboard Copied! 出力例
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: ""
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: ""
Copy to Clipboard Copied! 次のコマンドを実行して、Backup Storage Location (BSL) が使用可能であることを確認します。
oc get backupstoragelocations.velero.io -n openshift-adp
$ oc get backupstoragelocations.velero.io -n openshift-adp
Copy to Clipboard Copied! 出力例
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 3s 15s true
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 3s 15s true
Copy to Clipboard Copied! 次の例に示すように、バックアップ CR を設定します。
バックアップ CR の例
apiVersion: velero.io/v1 kind: Backup metadata: name: test-backup namespace: openshift-adp spec: includedNamespaces: - <application_namespace>
apiVersion: velero.io/v1 kind: Backup metadata: name: test-backup namespace: openshift-adp spec: includedNamespaces: - <application_namespace>
1 Copy to Clipboard Copied! - 1
- バックアップするアプリケーションの namespace を指定します。
次のコマンドを実行してバックアップ CR を作成します。
oc apply -f <backup_cr_filename>
$ oc apply -f <backup_cr_filename>
Copy to Clipboard Copied!
検証
次のコマンドを実行して、バックアップオブジェクトが
Completed
フェーズにあることを確認します。詳細は、出力例を参照してください。oc describe backup test-backup -n openshift-adp
$ oc describe backup test-backup -n openshift-adp
Copy to Clipboard Copied! 出力例
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>
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>
Copy to Clipboard Copied!
4.5.2. OpenShift API for Data Protection (OADP) による復元のユースケース
以下は、OADP を使用してバックアップを別の namespace に復元するユースケースです。
4.5.2.1. OADP を使用してアプリケーションを別の namespace に復元する
OADP を使用して、アプリケーションのバックアップを、新しいターゲット namespace の test-restore-application
に復元します。バックアップを復元するには、次の例に示すように、復元カスタムリソース (CR) を作成します。この復元 CR では、バックアップに含めたアプリケーションの namespace を、ソース namespace が参照します。その後、新しい復元先の namespace にプロジェクトを切り替えてリソースを確認することで、復元を検証します。
前提条件
- OADP Operator をインストールした。
- 復元するアプリケーションのバックアップがある。
手順
次の例に示すように、復元 CR を作成します。
復元 CR の例
apiVersion: velero.io/v1 kind: Restore metadata: name: test-restore namespace: openshift-adp spec: backupName: <backup_name> restorePVs: true namespaceMapping: <application_namespace>: test-restore-application
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 Copy to Clipboard Copied! 次のコマンドを実行して復元 CR を適用します。
oc apply -f <restore_cr_filename>
$ oc apply -f <restore_cr_filename>
Copy to Clipboard Copied!
検証
次のコマンドを実行して、復元が
Completed
フェーズにあることを確認します。oc describe restores.velero.io <restore_name> -n openshift-adp
$ oc describe restores.velero.io <restore_name> -n openshift-adp
Copy to Clipboard Copied! 次のコマンドを実行して、復元先の namespace
test-restore-application
に切り替えます。oc project test-restore-application
$ oc project test-restore-application
Copy to Clipboard Copied! 次のコマンドを実行して、永続ボリューム要求 (pvc)、サービス (svc)、デプロイメント、シークレット、config map などの復元されたリソースを確認します。
oc get pvc,svc,deployment,secret,configmap
$ oc get pvc,svc,deployment,secret,configmap
Copy to Clipboard Copied! 出力例
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
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
Copy to Clipboard Copied!
4.5.3. バックアップ時の自己署名 CA 証明書の追加
自己署名認証局 (CA) 証明書を Data Protection Application (DPA) に含めてから、アプリケーションをバックアップできます。バックアップは、Red Hat OpenShift Data Foundation (ODF) が提供する NooBaa バケットに保存します。
4.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 で実行されているデータベースを持つアプリケーションがある。
手順
次の例に示すように、NooBaa バケットを要求する OBC マニフェストを作成します。
ObjectBucketClaim
CR の例apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: test-obc namespace: openshift-adp spec: storageClassName: openshift-storage.noobaa.io generateBucketName: test-backup-bucket
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 Copy to Clipboard Copied! 次のコマンドを実行して OBC を作成します。
oc create -f <obc_file_name>
$ oc create -f <obc_file_name>
Copy to Clipboard Copied! OBC を作成すると、ODF が Object Bucket Claim と同じ名前の
secret
とConfigMap
を作成します。secret
オブジェクトにはバケットの認証情報が含まれ、ConfigMap
オブジェクトにはバケットにアクセスするための情報が含まれています。生成された config map からバケット名とバケットホストを取得するには、次のコマンドを実行します。oc extract --to=- cm/test-obc
$ oc extract --to=- cm/test-obc
1 Copy to Clipboard Copied! - 1
- OBC の名前は
test-obc
です。
出力例
BUCKET_NAME BUCKET_PORT BUCKET_REGION BUCKET_SUBREGION BUCKET_HOST
# BUCKET_NAME backup-c20...41fd # BUCKET_PORT 443 # BUCKET_REGION # BUCKET_SUBREGION # BUCKET_HOST s3.openshift-storage.svc
Copy to Clipboard Copied! secret
オブジェクトからバケット認証情報を取得するには、次のコマンドを実行します。oc extract --to=- secret/test-obc
$ oc extract --to=- secret/test-obc
Copy to Clipboard Copied! 出力例
AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY
# AWS_ACCESS_KEY_ID ebYR....xLNMc # AWS_SECRET_ACCESS_KEY YXf...+NaCkdyC3QPym
Copy to Clipboard Copied! 次の設定例を使用して、オブジェクトバケットの認証情報を含む
cloud-credentials
ファイルを作成します。[default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
[default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>
Copy to Clipboard Copied! 次のコマンドを実行して、
cloud-credentials
ファイルの内容を使用してcloud-credentials
シークレットを作成します。oc create secret generic \ cloud-credentials \ -n openshift-adp \ --from-file cloud=cloud-credentials
$ oc create secret generic \ cloud-credentials \ -n openshift-adp \ --from-file cloud=cloud-credentials
Copy to Clipboard Copied! 次のコマンドを実行して、
openshift-service-ca.crt
config map からサービス CA 証明書を抽出します。証明書をBase64
形式で必ずエンコードし、次のステップで使用する値をメモしてください。oc get cm/openshift-service-ca.crt \ -o jsonpath='{.data.service-ca\.crt}' | base64 -w0; echo
$ oc get cm/openshift-service-ca.crt \ -o jsonpath='{.data.service-ca\.crt}' | base64 -w0; echo
Copy to Clipboard Copied! 出力例
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0... ....gpwOHMwaG9CRmk5a3....FLS0tLS0K
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0... ....gpwOHMwaG9CRmk5a3....FLS0tLS0K
Copy to Clipboard Copied! 次の例に示すように、バケット名と CA 証明書を使用して
DataProtectionApplication
CR マニフェストファイルを設定します。DataProtectionApplication
CR の例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" provider: aws default: true credential: key: cloud name: cloud-credentials objectStorage: bucket: <bucket_name> prefix: oadp caCert: <ca_cert>
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 Copy to Clipboard Copied! 次のコマンドを実行して、
DataProtectionApplication
CR を作成します。oc apply -f <dpa_filename>
$ oc apply -f <dpa_filename>
Copy to Clipboard Copied! 次のコマンドを実行して、
DataProtectionApplication
CR が正常に作成されたことを確認します。oc get dpa -o yaml
$ oc get dpa -o yaml
Copy to Clipboard Copied! 出力例
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: ""
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: ""
Copy to Clipboard Copied! 次のコマンドを実行して、Backup Storage Location (BSL) が使用可能であることを確認します。
oc get backupstoragelocations.velero.io -n openshift-adp
$ oc get backupstoragelocations.velero.io -n openshift-adp
Copy to Clipboard Copied! 出力例
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 3s 15s true
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 3s 15s true
Copy to Clipboard Copied! 次の例を使用して、
Backup
CR を設定します。Backup
CR の例apiVersion: velero.io/v1 kind: Backup metadata: name: test-backup namespace: openshift-adp spec: includedNamespaces: - <application_namespace>
apiVersion: velero.io/v1 kind: Backup metadata: name: test-backup namespace: openshift-adp spec: includedNamespaces: - <application_namespace>
1 Copy to Clipboard Copied! - 1
- バックアップするアプリケーションの namespace を指定します。
次のコマンドを実行して
Backup
CR を作成します。oc apply -f <backup_cr_filename>
$ oc apply -f <backup_cr_filename>
Copy to Clipboard Copied!
検証
次のコマンドを実行して、
Backup
オブジェクトがCompleted
フェーズにあることを確認します。oc describe backup test-backup -n openshift-adp
$ oc describe backup test-backup -n openshift-adp
Copy to Clipboard Copied! 出力例
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>
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>
Copy to Clipboard Copied!
4.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 を使用します。これによりバックアップが正常に実行されます。
4.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 で実行されているデータベースを持つアプリケーションがある。
手順
次の例に示すように、
legacy-aws
Velero プラグインを使用するようにDataProtectionApplication
CR を設定します。DataProtectionApplication
CR の例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 - 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> prefix: oadp
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
Copy to Clipboard Copied! 次のコマンドを実行して、
DataProtectionApplication
CR を作成します。oc apply -f <dpa_filename>
$ oc apply -f <dpa_filename>
Copy to Clipboard Copied! 次のコマンドを実行して、
DataProtectionApplication
CR が正常に作成されたことを確認します。出力例から、status
オブジェクトのtype
フィールドがReconciled
に設定され、status
フィールドが"True"
に設定されていることがわかります。このステータスは、DataProtectionApplication
CR が正常に作成されたことを示します。oc get dpa -o yaml
$ oc get dpa -o yaml
Copy to Clipboard Copied! 出力例
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: ""
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: ""
Copy to Clipboard Copied! 次のコマンドを実行して、Backup Storage Location (BSL) が使用可能であることを確認します。
oc get backupstoragelocations.velero.io -n openshift-adp
$ oc get backupstoragelocations.velero.io -n openshift-adp
Copy to Clipboard Copied! 出力例
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 3s 15s true
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 3s 15s true
Copy to Clipboard Copied! 次の例に示すように、
Backup
CR を設定します。バックアップ CR の例
apiVersion: velero.io/v1 kind: Backup metadata: name: test-backup namespace: openshift-adp spec: includedNamespaces: - <application_namespace>
apiVersion: velero.io/v1 kind: Backup metadata: name: test-backup namespace: openshift-adp spec: includedNamespaces: - <application_namespace>
1 Copy to Clipboard Copied! - 1
- バックアップするアプリケーションの namespace を指定します。
次のコマンドを実行して
Backup
CR を作成します。oc apply -f <backup_cr_filename>
$ oc apply -f <backup_cr_filename>
Copy to Clipboard Copied!
検証
次のコマンドを実行して、バックアップオブジェクトが
Completed
フェーズにあることを確認します。詳細は、出力例を参照してください。oc describe backups.velero.io test-backup -n openshift-adp
$ oc describe backups.velero.io test-backup -n openshift-adp
Copy to Clipboard Copied! 出力例
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>
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>
Copy to Clipboard Copied!