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 バケットを要求します。
- バケットの詳細を抽出します。
-
DataProtectionApplicationCR に自己署名 CA 証明書を含めます。 - アプリケーションをバックアップします。
前提条件
- OADP Operator をインストールした。
- ODF Operator をインストールした。
- 別の namespace で実行されているデータベースを持つアプリケーションがある。
手順
次の例に示すように、NooBaa バケットを要求する OBC マニフェストを作成します。
apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: test-obc namespace: openshift-adp spec: storageClassName: openshift-storage.noobaa.io generateBucketName: test-backup-bucket各項目の説明:
test-obc- Object Bucket Claim の名前を指定します。
test-backup-bucket- バケットの名前を指定します。
次のコマンドを実行して OBC を作成します。
$ oc create -f <obc_file_name>OBC を作成すると、ODF が Object Bucket Claim と同じ名前の
secretとConfigMapを作成します。secretオブジェクトにはバケットの認証情報が含まれ、ConfigMapオブジェクトにはバケットにアクセスするための情報が含まれています。生成された config map からバケット名とバケットホストを取得するには、次のコマンドを実行します。$ oc extract --to=- cm/test-obctest-obcは OBC の名前です。出力例
# BUCKET_NAME backup-c20...41fd # BUCKET_PORT 443 # BUCKET_REGION # BUCKET_SUBREGION # BUCKET_HOST s3.openshift-storage.svcsecretオブジェクトからバケット認証情報を取得するには、次のコマンドを実行します。$ oc extract --to=- secret/test-obc出力例
# AWS_ACCESS_KEY_ID ebYR....xLNMc # AWS_SECRET_ACCESS_KEY YXf...+NaCkdyC3QPym次の設定例を使用して、オブジェクトバケットの認証情報を含む
cloud-credentialsファイルを作成します。[default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY>次のコマンドを実行して、
cloud-credentialsファイルの内容を使用してcloud-credentialsシークレットを作成します。$ oc create secret generic \ cloud-credentials \ -n openshift-adp \ --from-file cloud=cloud-credentials次のコマンドを実行して、
openshift-service-ca.crtconfig map からサービス CA 証明書を抽出します。証明書をBase64形式で必ずエンコードし、次のステップで使用する値をメモしてください。$ oc get cm/openshift-service-ca.crt \ -o jsonpath='{.data.service-ca\.crt}' | base64 -w0; echo出力例
LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0... ....gpwOHMwaG9CRmk5a3....FLS0tLS0K次の例に示すように、バケット名と CA 証明書を使用して
DataProtectionApplicationCR マニフェストファイルを設定します。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>各項目の説明:
insecureSkipTLSVerify-
SSL/TLS セキュリティーが有効かどうかを指定します。
trueに設定すると、SSL/TLS セキュリティーが無効になります。falseに設定すると、SSL/TLS セキュリティーが有効になります。 <bucket_name>- 前のステップで抽出したバケットの名前を指定します。
<ca_cert>-
前の手順で
Base64でエンコードした証明書を指定します。
次のコマンドを実行して、
DataProtectionApplicationCR を作成します。$ oc apply -f <dpa_filename>次のコマンドを実行して、
DataProtectionApplicationCR が正常に作成されたことを確認します。$ oc get dpa -o yaml出力例
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: ""次のコマンドを実行して、Backup Storage Location (BSL) が使用可能であることを確認します。
$ oc get backupstoragelocations.velero.io -n openshift-adp出力例
NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 3s 15s true次の例を使用して、
BackupCR を設定します。apiVersion: velero.io/v1 kind: Backup metadata: name: test-backup namespace: openshift-adp spec: includedNamespaces: - <application_namespace>各項目の説明:
<application_namespace>- バックアップするアプリケーションの namespace を指定します。
次のコマンドを実行して
BackupCR を作成します。$ oc apply -f <backup_cr_filename>
検証
次のコマンドを実行して、
BackupオブジェクトがCompletedフェーズにあることを確認します。$ oc describe backup test-backup -n openshift-adp出力例
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>