4.11. MCG を使用した OADP の設定
4.11.1. Multicloud Object Gateway を使用した OpenShift API for Data Protection の設定
OADP Operator をインストールすることで、Multicloud Object Gateway (MCG) を使用して OpenShift API for Data Protection (OADP) をインストールします。Operator は Velero 1.14 をインストールします。
OADP 1.0.4 以降、すべての OADP 1.0.z バージョンは Migration Toolkit for Containers Operator の依存関係としてのみ使用でき、スタンドアロン Operator として使用することはできません。
					Multicloud Object Gateway をバックアップの場所として設定します。MCG は、OpenShift Data Foundation のコンポーネントです。MCG は、DataProtectionApplication カスタムリソース (CR) のバックアップロケーションとして設定します。
				
						オブジェクトストレージのバケット作成を自動化する CloudStorage API は、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
					
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
					バックアップの場所の Secret を作成し、次に、Data Protection Application をインストールします。詳細は、OADP Operator のインストール を参照してください。
				
制限されたネットワーク環境に OADP Operator をインストールするには、最初にデフォルトの OperatorHub ソースを無効にして、Operator カタログをミラーリングする必要があります。詳細は、ネットワークが制限された環境での Operator Lifecycle Manager の使用 を参照してください。
4.11.1.1. Multicloud Object Gateway の認証情報の取得
						OpenShift API for Data Protection (OADP) の Secret カスタムリソース (CR) を作成するには、Multicloud Object Gateway (MCG) 認証情報を取得する必要があります。
					
MCG Operator は 非推奨 ですが、MCG プラグインは OpenShift Data Foundation で引き続き利用できます。プラグインをダウンロードするには、Red Hat OpenShift Data Foundation のダウンロード を参照し、ご使用のオペレーティングシステムに適した MCG プラグインをダウンロードします。
前提条件
- 適切な Red Hat OpenShift Data Foundation デプロイメントガイド を使用して、OpenShift Data Foundation をデプロイする必要があります。
手順
- 
								NooBaaカスタムリソースでdescribeコマンドを実行して、S3 エンドポイントであるAWS_ACCESS_KEY_IDおよびAWS_SECRET_ACCESS_KEYを取得します。
- credentials-veleroファイルを作成します。- cat << EOF > ./credentials-velero [default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY> EOF - $ cat << EOF > ./credentials-velero [default] aws_access_key_id=<AWS_ACCESS_KEY_ID> aws_secret_access_key=<AWS_SECRET_ACCESS_KEY> EOF- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - Data Protection Application をインストールする際に、 - credentials-veleroファイルを使用して- Secretオブジェクトを作成します。
4.11.1.2. バックアップおよびスナップショットの場所、ならびにそのシークレットについて
						DataProtectionApplication カスタムリソース (CR) で、バックアップおよびスナップショットの場所、ならびにそのシークレットを指定します。
					
バックアップの場所
バックアップの場所として、Multicloud Object Gateway、Red Hat Container Storage、Ceph RADOS Gateway (Ceph Object Gateway とも呼ばれます)、Red Hat OpenShift Data Foundation、MinIO などの AWS S3 互換オブジェクトストレージを指定します。
Velero は、オブジェクトストレージのアーカイブファイルとして、OpenShift Container Platform リソース、Kubernetes オブジェクト、および内部イメージをバックアップします。
スナップショットの場所
クラウドプロバイダーのネイティブスナップショット API を使用して永続ボリュームをバックアップする場合、クラウドプロバイダーをスナップショットの場所として指定する必要があります。
						Container Storage Interface (CSI) スナップショットを使用する場合、CSI ドライバーを登録するために VolumeSnapshotClass CR を作成するため、スナップショットの場所を指定する必要はありません。
					
File System Backup (FSB) を使用する場合、FSB がオブジェクトストレージ上にファイルシステムをバックアップするため、スナップショットの場所を指定する必要はありません。
シークレット
						バックアップとスナップショットの場所が同じ認証情報を使用する場合、またはスナップショットの場所が必要ない場合は、デフォルトの Secret を作成します。
					
バックアップとスナップショットの場所で異なる認証情報を使用する場合は、次の 2 つの secret オブジェクトを作成します。
- 
								DataProtectionApplicationCR で指定する、バックアップの場所用のカスタムSecret。
- 
								DataProtectionApplicationCR で参照されない、スナップショットの場所用のデフォルトSecret。
							Data Protection Application には、デフォルトの Secret が必要です。作成しないと、インストールは失敗します。
						
							インストール中にバックアップまたはスナップショットの場所を指定したくない場合は、空の credentials-velero ファイルを使用してデフォルトの Secret を作成できます。
						
4.11.1.2.1. デフォルト Secret の作成
							バックアップとスナップショットの場所が同じ認証情報を使用する場合、またはスナップショットの場所が必要ない場合は、デフォルトの Secret を作成します。
						
							Secret のデフォルト名は cloud-credentials です。
						
								DataProtectionApplication カスタムリソース (CR) にはデフォルトの Secret が必要です。作成しないと、インストールは失敗します。バックアップの場所の Secret の名前が指定されていない場合は、デフォルトの名前が使用されます。
							
								インストール時にバックアップ場所の認証情報を使用しない場合は、空の credentials-velero ファイルを使用して、デフォルト名の Secret を作成できます。
							
前提条件
- オブジェクトストレージとクラウドストレージがある場合は、同じ認証情報を使用する必要があります。
- Velero のオブジェクトストレージを設定する必要があります。
手順
- Backup Storage Location の - credentials-veleroファイルをクラウドプロバイダーに適した形式で作成します。- 以下の例を参照してください。 - [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! - Toggle word wrap Toggle overflow 
- デフォルト名で - Secretカスタムリソース (CR) を作成します。- oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero - $ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
							Secret は、Data Protection Application をインストールするときに、DataProtectionApplication CR の spec.backupLocations.credential ブロックで参照されます。
						
4.11.1.2.2. 異なる認証情報のシークレットの作成
							バックアップとスナップショットの場所で異なる認証情報を使用する場合は、次の 2 つの Secret オブジェクトを作成する必要があります。
						
- 
									カスタム名を持つバックアップロケーションの Secret。カスタム名は、DataProtectionApplicationカスタムリソース (CR) のspec.backupLocationsブロックで指定されます。
- 
									スナップショットの場所 Secret(デフォルト名はcloud-credentials)。このSecretは、DataProtectionApplicationで指定されていません。
手順
- 
									スナップショットの場所の credentials-veleroファイルをクラウドプロバイダーに適した形式で作成します。
- デフォルト名でスナップショットの場所の - Secretを作成します。- oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero - $ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
									オブジェクトストレージに適した形式で、バックアップロケーションの credentials-veleroファイルを作成します。
- カスタム名を使用してバックアップロケーションの - Secretを作成します。- oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero - $ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次の例のように、カスタム名の - Secretを- DataProtectionApplicationに追加します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
4.11.1.3. Data Protection Application の設定
Velero リソースの割り当てを設定するか、自己署名 CA 証明書を有効にして、Data Protection Application を設定できます。
4.11.1.3.1. Velero の CPU とメモリーのリソース割り当てを設定
							DataProtectionApplication カスタムリソース (CR) マニフェストを編集して、Velero Pod の CPU およびメモリーリソースの割り当てを設定します。
						
前提条件
- OpenShift API for Data Protection (OADP) Operator がインストールされている必要があります。
手順
- 次の例のように、 - DataProtectionApplicationCR マニフェストの- spec.configuration.velero.podConfig.ResourceAllocationsブロックの値を編集します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
Kopia は OADP 1.3 以降のリリースで選択できます。Kopia はファイルシステムのバックアップに使用できます。組み込みの Data Mover を使用する Data Mover の場合は、Kopia が唯一の選択肢になります。
Kopia は Restic よりも多くのリソースを消費するため、それに応じて CPU とメモリーの要件を調整しなければならない場合があります。
							nodeSelector フィールドを使用して、ノードエージェントを実行できるノードを選択します。nodeSelector フィールドは、推奨される最も単純な形式のノード選択制約です。指定したラベルが、各ノードのラベルと一致する必要があります。
						
詳細は、ノードエージェントとノードラベルの設定 を参照してください。
4.11.1.3.2. 自己署名 CA 証明書の有効化
							certificate signed by unknown authority エラーを防ぐために、DataProtectionApplication カスタムリソース (CR) マニフェストを編集して、オブジェクトストレージの自己署名 CA 証明書を有効にする必要があります。
						
前提条件
- OpenShift API for Data Protection (OADP) Operator がインストールされている必要があります。
手順
- DataProtectionApplicationCR マニフェストの- spec.backupLocations.velero.objectStorage.caCertパラメーターと- spec.backupLocations.velero.configパラメーターを編集します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
4.11.1.3.2.1. Velero デプロイメント用のエイリアス化した velero コマンドで CA 証明書を使用する
Velero CLI のエイリアスを作成することで、システムにローカルにインストールせずに Velero CLI を使用できます。
前提条件
- 
										cluster-adminロールを持つユーザーとして OpenShift Container Platform クラスターにログインしている。
- OpenShift CLI ( - oc) がインストールされている。- エイリアス化した Velero コマンドを使用するには、次のコマンドを実行します。 - alias velero='oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero' - $ alias velero='oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次のコマンドを実行して、エイリアスが機能していることを確認します。 - 例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- このコマンドで CA 証明書を使用するには、次のコマンドを実行して証明書を Velero デプロイメントに追加できます。 - CA_CERT=$(oc -n openshift-adp get dataprotectionapplications.oadp.openshift.io <dpa-name> -o jsonpath='{.spec.backupLocations[0].velero.objectStorage.caCert}') [[ -n $CA_CERT ]] && echo "$CA_CERT" | base64 -d | oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "cat > /tmp/your-cacert.txt" || echo "DPA BSL has no caCert"- $ CA_CERT=$(oc -n openshift-adp get dataprotectionapplications.oadp.openshift.io <dpa-name> -o jsonpath='{.spec.backupLocations[0].velero.objectStorage.caCert}') $ [[ -n $CA_CERT ]] && echo "$CA_CERT" | base64 -d | oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "cat > /tmp/your-cacert.txt" || echo "DPA BSL has no caCert"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - velero describe backup <backup_name> --details --cacert /tmp/<your_cacert>.txt - $ velero describe backup <backup_name> --details --cacert /tmp/<your_cacert>.txt- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- バックアップログを取得するために、次のコマンドを実行します。 - velero backup logs <backup_name> --cacert /tmp/<your_cacert.txt> - $ velero backup logs <backup_name> --cacert /tmp/<your_cacert.txt>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - このログを使用して、バックアップできないリソースの障害と警告を表示できます。 
- 
												Velero Pod が再起動すると、/tmp/your-cacert.txtファイルが消去されます。そのため、前の手順のコマンドを再実行して/tmp/your-cacert.txtファイルを再作成する必要があります。
- 次のコマンドを実行すると、 - /tmp/your-cacert.txtファイルを保存した場所にファイルがまだ存在するかどうかを確認できます。- oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "ls /tmp/your-cacert.txt" - $ oc exec -n openshift-adp -i deploy/velero -c velero -- bash -c "ls /tmp/your-cacert.txt" /tmp/your-cacert.txt- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
OpenShift API for Data Protection (OADP) の今後のリリースでは、この手順が不要になるように証明書を Velero Pod にマウントする予定です。
4.11.1.4. Data Protection Application のインストール
						DataProtectionApplication API のインスタンスを作成して、Data Protection Application (DPA) をインストールします。
					
前提条件
- OADP Operator をインストールする。
- オブジェクトストレージをバックアップロケーションとして設定する必要がある。
- スナップショットを使用して PV をバックアップする場合、クラウドプロバイダーはネイティブスナップショット API または Container Storage Interface (CSI) スナップショットのいずれかをサポートする必要がある。
- 
								バックアップとスナップショットの場所で同じ認証情報を使用する場合は、デフォルトの名前である cloud-credentialsを使用してSecretを作成する必要がある。
- バックアップとスナップショットの場所で異なる認証情報を使用する場合は、以下のように 2 つの - Secretsを作成する必要がある。- 
										バックアップの場所用のカスタム名を持つ Secret。このSecretをDataProtectionApplicationCR に追加します。
- 
										スナップショットの場所用の別のカスタム名を持つ Secret。このSecretをDataProtectionApplicationCR に追加します。
 注記- インストール中にバックアップまたはスナップショットの場所を指定したくない場合は、空の - credentials-veleroファイルを使用してデフォルトの- Secretを作成できます。デフォルトの- Secretがない場合、インストールは失敗します。
- 
										バックアップの場所用のカスタム名を持つ 
手順
- 
								Operators Installed Operators をクリックして、OADP Operator を選択します。 
- Provided APIs で、DataProtectionApplication ボックスの Create instance をクリックします。
- YAML View をクリックして、 - DataProtectionApplicationマニフェストのパラメーターを更新します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- OADP のデフォルトの namespace はopenshift-adpです。namespace は変数であり、設定可能です。
- 2
- ストレージの場所に対応したオブジェクトストアプラグインが必要です。すべての S3 プロバイダーで、awsプラグインが必要です。Azure および Google Cloud オブジェクトストアの場合、azure またはgcpプラグインが必要です。
- 3
- openshiftプラグインは必須です。
- 4
- Velero CRD の可用性、volumeSnapshot の削除、バックアップリポジトリーの可用性など、タイムアウトが発生するまでに複数の Velero リソースを待機する時間を分単位で指定します。デフォルトは 10m です。
- 5
- 管理要求をサーバーにルーティングする管理エージェント。
- 6
- nodeAgentを有効にして File System Backup を実行する場合は、この値を- trueに設定します。
- 7
- アップローダーとしてkopiaまたはresticと入力します。インストール後に選択を変更することはできません。組み込み DataMover の場合は、Kopia を使用する必要があります。nodeAgentはデーモンセットをデプロイします。これは、nodeAgentPod が各ワーキングノード上で実行されることを意味します。File System Backup を設定するには、spec.defaultVolumesToFsBackup: trueをBackupCR に追加します。
- 8
- Kopia または Restic が使用可能なノードを指定します。デフォルトでは、Kopia または Restic はすべてのノードで実行されます。
- 9
- オブジェクトストレージサーバーのドキュメントの命名規則に従って、リージョンを指定します。
- 10
- S3 エンドポイントの URL を指定します。
- 11
- 作成したSecretオブジェクトの名前を指定します。この値を指定しない場合は、デフォルト名のcloud-credentialsが使用されます。カスタム名を指定すると、バックアップの場所にカスタム名が使用されます。
- 12
- Backup Storage Location としてバケットを指定します。バケットが Velero バックアップ専用のバケットでない場合は、接頭辞を指定する必要があります。
- 13
- バケットが複数の目的で使用される場合は、Velero バックアップの接頭辞を指定します (例:velero)。
 
- Create をクリックします。
検証
- 次のコマンドを実行して OpenShift API for Data Protection (OADP) リソースを表示し、インストールを検証します。 - oc get all -n openshift-adp - $ oc get all -n openshift-adp- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 次のコマンドを実行して、 - DataProtectionApplication(DPA) が調整されていることを確認します。- oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'- $ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - {"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}- {"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 
								typeがReconciledに設定されていることを確認します。
- 次のコマンドを実行して、Backup Storage Location を確認し、 - PHASEが- Availableであることを確認します。- oc get backupstoragelocations.velero.io -n openshift-adp - $ oc get backupstoragelocations.velero.io -n openshift-adp- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 出力例 - NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true - NAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
4.11.1.5. クライアントバースト設定と QPS 設定を使用した DPA の設定
						バースト設定は、制限が適用されるまで velero サーバーに送信できる要求の数を決定するものです。バースト制限に達した後は、1 秒あたりのクエリー数 (QPS) 設定によって、1 秒あたりに送信できる追加の要求の数が決定されます。
					
						バースト値と QPS 値を使用して Data Protection Application (DPA) を設定することにより、velero サーバーのバースト値と QPS 値を設定できます。バースト値と QPS 値は、DPA の dpa.configuration.velero.client-burst フィールドと dpa.configuration.velero.client-qps フィールドを使用して設定できます。
					
前提条件
- OADP Operator がインストールされている。
手順
- 次の例に示すように、DPA の - client-burstフィールドと- client-qpsフィールドを設定します。- Data Protection Application の例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
4.11.1.5.1. ノードエージェントとノードラベルの設定
							OADP の DPA は、nodeSelector フィールドを使用して、ノードエージェントを実行できるノードを選択します。nodeSelector フィールドは、推奨される最も単純な形式のノード選択制約です。
						
指定したラベルが、各ノードのラベルと一致する必要があります。
選択した任意のノードでノードエージェントを実行する正しい方法は、ノードにカスタムラベルを付けることです。
oc label node/<node_name> node-role.kubernetes.io/nodeAgent=""
$ oc label node/<node_name> node-role.kubernetes.io/nodeAgent=""
							ノードのラベル付けに使用したのと同じカスタムラベルを DPA.spec.configuration.nodeAgent.podConfig.nodeSelector で使用します。以下に例を示します。
						
							次の例は nodeSelector のアンチパターンです。この例は、ノードに 'node-role.kubernetes.io/infra: ""' と 'node-role.kubernetes.io/worker: ""' の両方のラベルがないと機能しません。
						
4.11.1.5.2. DataProtectionApplication CR で CSI を有効にする
							CSI スナップショットを使用して永続ボリュームをバックアップするには、DataProtectionApplication カスタムリソース (CR) で Container Storage Interface (CSI) を有効にします。
						
前提条件
- クラウドプロバイダーは、CSI スナップショットをサポートする必要があります。
手順
- 次の例のように、 - DataProtectionApplicationCR を編集します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- csiデフォルトプラグインを追加します。
 
4.11.1.5.3. DataProtectionApplication でノードエージェントを無効にする
							バックアップに Restic、Kopia、または DataMover を使用していない場合は、DataProtectionApplication カスタムリソース (CR) の nodeAgent フィールドを無効にすることができます。nodeAgent を無効にする前に、OADP Operator がアイドル状態であり、バックアップを実行していないことを確認してください。
						
手順
- nodeAgentを無効にするには、- enableフラグを- falseに設定します。以下の例を参照してください。- DataProtectionApplicationCR の例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- ノードエージェントを無効にします。
 
- nodeAgentを有効にするには、- enableフラグを- trueに設定します。以下の例を参照してください。- DataProtectionApplicationCR の例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- ノードエージェントを有効にします。
 
							ジョブをセットアップして、DataProtectionApplication CR の nodeAgent フィールドを有効または無効にすることができます。詳細は、「ジョブの使用による Pod でのタスクの実行」を参照してください。