5.8. IBM Cloud を使用した OADP の設定
5.8.1. IBM Cloud を使用した OpenShift API for Data Protection の設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスター上のアプリケーションをバックアップおよび復元するには、IBM Cloud クラスターに OpenShift API for Data Protection (OADP) Operator をインストールします。バックアップを保存するには、IBM Cloud Object Storage (COS) を設定します。
5.8.1.1. COS インスタンスの設定 リンクのコピーリンクがクリップボードにコピーされました!
OADP バックアップデータを保存するために、IBM Cloud Object Storage (COS) インスタンスを作成します。COS インスタンスを作成したら、HMAC サービス認証情報を設定します。
前提条件
- IBM Cloud Platform アカウントをもっている。
- IBM Cloud CLI をインストールしている。
- IBM Cloud にログインしている。
手順
次のコマンドを実行して、IBM Cloud Object Storage (COS) プラグインをインストールします。
$ ibmcloud plugin install cos -f次のコマンドを実行してバケット名を設定します。
$ BUCKET=<bucket_name>次のコマンドを実行してバケットリージョンを設定します。
$ REGION=<bucket_region>ここでは、以下のようになります。
<bucket_region>-
バケットリージョンを指定します。たとえば、
eu-gb。
次のコマンドを実行してリソースグループを作成します。
$ ibmcloud resource group-create <resource_group_name>次のコマンドを実行して、ターゲットリソースグループを設定します。
$ ibmcloud target -g <resource_group_name>次のコマンドを実行して、ターゲットリソースグループが正しく設定されていることを確認します。
$ ibmcloud target出力例
API endpoint: https://cloud.ibm.com Region: User: test-user Account: Test Account (fb6......e95) <-> 2...122 Resource group: Default出力例では、リソースグループは
Defaultに設定されています。次のコマンドを実行してリソースグループ名を設定します。
$ RESOURCE_GROUP=<resource_group>ここでは、以下のようになります。
< リソースグループ >-
リソースグループ名を指定します。たとえば、
default。
次のコマンドを実行して、IBM Cloud
service-instanceリソースを作成します。$ ibmcloud resource service-instance-create \ <service_instance_name> \ <service_name> \ <service_plan> \ <region_name>ここでは、以下のようになります。
< サービスインスタンス名 >-
サービスインスタンスリソースの名前を指定します。 < サービス名 >- サービス名を指定します。または、サービス ID を指定することもできます。
< サービスプラン >- IBM Cloud アカウントのサービスプランを指定します。
< 地域名 >- リージョン名を指定します。
以下のコマンド例を参照してください。
$ ibmcloud resource service-instance-create test-service-instance cloud-object-storage \ standard \ global \ -d premium-global-deploymentここでは、以下のようになります。
クラウドオブジェクトストレージ- サービス名を指定します。
-d プレミアムグローバルデプロイメント- デプロイメント名を指定します。
次のコマンドを実行して、サービスインスタンス ID を抽出します。
$ SERVICE_INSTANCE_ID=$(ibmcloud resource service-instance test-service-instance --output json | jq -r '.[0].id')次のコマンドを実行して COS バケットを作成します。
$ ibmcloud cos bucket-create \ --bucket $BUCKET \ --ibm-service-instance-id $SERVICE_INSTANCE_ID \ --region $REGION$BUCKET、$SERVICE_INSTANCE_ID、$REGIONなどの変数は、以前に設定した値に置き換えられます。次のコマンドを実行して
HMAC認証情報を作成します。$ ibmcloud resource service-key-create test-key Writer --instance-name test-service-instance --parameters {\"HMAC\":true}HMAC認証情報からアクセスキー ID とシークレットアクセスキーを抽出し、credentials-veleroファイルに保存します。credentials-veleroファイルを使用して、Backup Storage Location のsecretを作成できます。以下のコマンドを実行します。$ cat > credentials-velero << __EOF__ [default] aws_access_key_id=$(ibmcloud resource service-key test-key -o json | jq -r '.[0].credentials.cos_hmac_keys.access_key_id') aws_secret_access_key=$(ibmcloud resource service-key test-key -o json | jq -r '.[0].credentials.cos_hmac_keys.secret_access_key') __EOF__
5.8.1.2. デフォルト Secret の作成 リンクのコピーリンクがクリップボードにコピーされました!
バックアップとスナップショットの場所が同じ認証情報を使用する場合、またはスナップショットの場所が必要ない場合は、デフォルトの Secret を作成します。
DataProtectionApplication カスタムリソース (CR) にはデフォルトの Secret が必要です。作成しないと、インストールは失敗します。バックアップの場所の Secret の名前が指定されていない場合は、デフォルトの名前が使用されます。
インストール時にバックアップ場所の認証情報を使用しない場合は、空の credentials-velero ファイルを使用して、デフォルト名の Secret を作成できます。
前提条件
- オブジェクトストレージとクラウドストレージがある場合は、同じ認証情報を使用する必要があります。
- Velero のオブジェクトストレージを設定する必要があります。
手順
-
Backup Storage Location の
credentials-veleroファイルをクラウドプロバイダーに適した形式で作成します。 デフォルト名で
Secretカスタムリソース (CR) を作成します。$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-veleroSecretは、Data Protection Application をインストールするときに、DataProtectionApplicationCR のspec.backupLocations.credentialブロックで参照されます。
5.8.1.3. 異なる認証情報のシークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
バックアップ先とスナップショット先で異なる認証情報が必要な場合は、それぞれ別の シークレット オブジェクトを作成してください。これにより、安全な認証情報管理を維持しながら、ストレージの場所ごとに個別の認証を設定できます。
手順
-
スナップショットの場所の
credentials-veleroファイルをクラウドプロバイダーに適した形式で作成します。 デフォルト名でスナップショットの場所の
Secretを作成します。$ oc create secret generic cloud-credentials -n openshift-adp --from-file cloud=credentials-velero-
オブジェクトストレージに適した形式で、バックアップロケーションの
credentials-veleroファイルを作成します。 カスタム名を使用してバックアップロケーションの
Secretを作成します。$ oc create secret generic <custom_secret> -n openshift-adp --from-file cloud=credentials-velero次の例のように、カスタム名の
SecretをDataProtectionApplicationに追加します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> namespace: openshift-adp spec: ... backupLocations: - velero: provider: <provider> default: true credential: key: cloud name: <custom_secret> objectStorage: bucket: <bucket_name> prefix: <prefix>ここでは、以下のようになります。
カスタムシークレット-
バックアップ場所を指定する
Secretに、カスタム名を指定します。
5.8.1.4. Data Protection Application のインストール リンクのコピーリンクがクリップボードにコピーされました!
DataProtectionApplication API のインスタンスを作成して、Data Protection Application (DPA) をインストールします。
前提条件
- OADP Operator をインストールする。
- オブジェクトストレージをバックアップロケーションとして設定する必要がある。
- スナップショットを使用して PV をバックアップする場合、クラウドプロバイダーはネイティブスナップショット API または Container Storage Interface (CSI) スナップショットのいずれかをサポートする必要がある。
バックアップとスナップショットの場所で同じ認証情報を使用する場合は、デフォルトの名前である
cloud-credentialsを使用してSecretを作成する必要がある。注記インストール中にバックアップまたはスナップショットの場所を指定したくない場合は、空の
credentials-veleroファイルを使用してデフォルトのSecretを作成できます。デフォルトのSecretがない場合、インストールは失敗します。
手順
-
Ecosystem
Installed Operators をクリックし、OADPOperator を選択します。 - Provided APIs で、DataProtectionApplication ボックスの Create instance をクリックします。
YAML View をクリックして、
DataProtectionApplicationマニフェストのパラメーターを更新します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: namespace: openshift-adp name: <dpa_name> spec: configuration: velero: defaultPlugins: - openshift - aws - csi backupLocations: - velero: provider: aws default: true objectStorage: bucket: <bucket_name> prefix: velero config: insecureSkipTLSVerify: 'true' profile: default region: <region_name> s3ForcePathStyle: 'true' s3Url: <s3_url> credential: key: cloud name: cloud-credentialsここでは、以下のようになります。
provider-
IBM Cloud をバックアップストレージの場所として使用する場合に、プロバイダーが
awsであることを指定します。 bucket- IBM Cloud Object Storage (COS) バケット名を指定します。
region-
COS リージョン名を指定します。例:
eu-gb。 s3Url-
COS バケットの S3 URL を指定します。たとえば、
http://s3.eu-gb.cloud-object-storage.appdomain.cloudです。ここで、eu-gbはリージョン名です。バケットのリージョンに応じてリージョン名を置き換えます。 name-
HMAC認証情報に含まれるアクセスキーとシークレットアクセスキーを使用して作成したシークレットの名前を指定します。
- Create をクリックします。
検証
次のコマンドを実行して OpenShift API for Data Protection (OADP) リソースを表示し、インストールを検証します。
$ oc get all -n openshift-adpNAME READY STATUS RESTARTS AGE pod/oadp-operator-controller-manager-67d9494d47-6l8z8 2/2 Running 0 2m8s pod/node-agent-9cq4q 1/1 Running 0 94s pod/node-agent-m4lts 1/1 Running 0 94s pod/node-agent-pv4kr 1/1 Running 0 95s pod/velero-588db7f655-n842v 1/1 Running 0 95s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/oadp-operator-controller-manager-metrics-service ClusterIP 172.30.70.140 <none> 8443/TCP 2m8s service/openshift-adp-velero-metrics-svc ClusterIP 172.30.10.0 <none> 8085/TCP 8h NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE daemonset.apps/node-agent 3 3 3 3 3 <none> 96s NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/oadp-operator-controller-manager 1/1 1 1 2m9s deployment.apps/velero 1/1 1 1 96s NAME DESIRED CURRENT READY AGE replicaset.apps/oadp-operator-controller-manager-67d9494d47 1 1 1 2m9s replicaset.apps/velero-588db7f655 1 1 1 96s次のコマンドを実行して、
DataProtectionApplication(DPA) が調整されていることを確認します。$ oc get dpa dpa-sample -n openshift-adp -o jsonpath='{.status}'{"conditions":[{"lastTransitionTime":"2023-10-27T01:23:57Z","message":"Reconcile complete","reason":"Complete","status":"True","type":"Reconciled"}]}-
typeがReconciledに設定されていることを確認します。 次のコマンドを実行して、Backup Storage Location を確認し、
PHASEがAvailableであることを確認します。$ oc get backupstoragelocations.velero.io -n openshift-adpNAME PHASE LAST VALIDATED AGE DEFAULT dpa-sample-1 Available 1s 3d16h true
5.8.1.5. Velero の CPU とメモリーのリソース割り当てを設定 リンクのコピーリンクがクリップボードにコピーされました!
DataProtectionApplication カスタムリソース (CR) マニフェストを編集して、Velero Pod の CPU およびメモリーリソースの割り当てを設定します。
前提条件
- OpenShift API for Data Protection (OADP) Operator がインストールされている必要があります。
手順
次の例のように、
DataProtectionApplicationCR マニフェストのspec.configuration.velero.podConfig.ResourceAllocationsブロックの値を編集します。apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: <dpa_sample> spec: # ... configuration: velero: podConfig: nodeSelector: <node_selector> resourceAllocations: limits: cpu: "1" memory: 1024Mi requests: cpu: 200m memory: 256Miここでは、以下のようになります。
nodeSelector- Velero podSpec に渡すノードセレクターを指定します。
resourceAllocations平均使用量に基づいて割り当てられたリソースを指定します。
注記Kopia は OADP 1.3 以降のリリースで選択できます。Kopia はファイルシステムのバックアップに使用できます。組み込みの Data Mover を使用する Data Mover の場合は、Kopia が唯一の選択肢になります。
Kopia は Restic よりも多くのリソースを消費するため、それに応じて CPU とメモリーの要件を調整しなければならない場合があります。
5.8.1.6. ノードエージェントとノードラベルの設定 リンクのコピーリンクがクリップボードにコピーされました!
Data Protection Application (DPA) は、nodeSelector フィールドを使用して、ノードエージェントを実行できるノードを選択します。nodeSelector フィールドは、推奨される形式のノード選択制約です。
手順
カスタムラベルを追加して、選択した任意のノードでノードエージェントを実行します。
$ oc label node/<node_name> node-role.kubernetes.io/nodeAgent=""注記指定したラベルが、各ノードのラベルと一致する必要があります。
ノードのラベル付けに使用したのと同じカスタムラベルを
DPA.spec.configuration.nodeAgent.podConfig.nodeSelectorフィールドで使用します。configuration: nodeAgent: enable: true podConfig: nodeSelector: node-role.kubernetes.io/nodeAgent: ""次の例は
nodeSelectorのアンチパターンです。この例は、node-role.kubernetes.io/infra: ""とnode-role.kubernetes.io/worker: ""の両方のラベルがノードに存在しない限り機能しません。configuration: nodeAgent: enable: true podConfig: nodeSelector: node-role.kubernetes.io/infra: "" node-role.kubernetes.io/worker: ""
5.8.1.7. クライアントバースト設定と 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 の例
apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: test-dpa namespace: openshift-adp spec: backupLocations: - name: default velero: config: insecureSkipTLSVerify: "true" profile: "default" region: <bucket_region> s3ForcePathStyle: "true" s3Url: <bucket_url> credential: key: cloud name: cloud-credentials default: true objectStorage: bucket: <bucket_name> prefix: velero provider: aws configuration: nodeAgent: enable: true uploaderType: restic velero: client-burst: 500 client-qps: 300 defaultPlugins: - openshift - aws - kubevirtここでは、以下のようになります。
クライアントバースト-
クライアントバースト値を指定します。この例では、client-burstフィールドは 500 に設定されています。 クライアント QPS-
クライアント QPS値を指定します。この例では、client-qpsフィールドは 300 に設定されています。
5.8.1.8. ノードエージェントのロードアフィニティーの設定 リンクのコピーリンクがクリップボードにコピーされました!
DataProtectionApplication (DPA) カスタムリソース (CR) の spec.podConfig.nodeSelector オブジェクトを使用して、特定のノードにノードエージェント Pod をスケジュールできます。
次の例を参照してください。この例を使用すると、ラベル label.io/role: cpu-1 および other-label.io/other-role: cpu-2 を持つノードにノードエージェント Pod をスケジュールできます。
...
spec:
configuration:
nodeAgent:
enable: true
uploaderType: kopia
podConfig:
nodeSelector:
label.io/role: cpu-1
other-label.io/other-role: cpu-2
...
DPA 仕様の nodeagent.loadAffinity オブジェクトを使用して、ノードエージェント Pod のスケジューリングにさらに制限を追加できます。
前提条件
-
cluster-admin権限を持つユーザーとしてログインしている。 - OADP Operator がインストールされている。
- DPA CR が設定されている。
手順
次の例に示すように、DPA 仕様の
nodegent.loadAffinityオブジェクトを設定します。この例では、ラベル
label.io/role: cpu-1とラベルlabel.io/hostnameがnode1またはnode2のいずれかに一致するノードにのみ、ノードエージェント Pod がスケジュールされるようにします。... spec: configuration: nodeAgent: enable: true loadAffinity: - nodeSelector: matchLabels: label.io/role: cpu-1 matchExpressions: - key: label.io/hostname operator: In values: - node1 - node2 ...ここでは、以下のようになります。
ロードアフィニティー-
matchLabels オブジェクトとmatchExpressionsオブジェクトを追加することで、loadAffinityオブジェクトを指定します。 matchExpressions-
ノードエージェント Pod のスケジューリングに制限を追加する
matchExpressionsオブジェクトを指定します。
5.8.1.9. ノードエージェントのロードアフィニティーのガイドライン リンクのコピーリンクがクリップボードにコピーされました!
DataProtectionApplication (DPA) カスタムリソース (CR) でノードエージェント loadAffinity オブジェクトを設定するには、次のガイドラインを使用してください。
-
単純なノードマッチングの場合は、
spec.nodeagent.podConfig.nodeSelectorオブジェクトを使用します。 -
より複雑な状況の場合は、
podConfig.nodeSelectorオブジェクトを使用せずにloadAffinity.nodeSelectorオブジェクトを使用します。 -
podConfig.nodeSelectorオブジェクトとloadAffinity.nodeSelectorオブジェクトの両方を使用できます。ただし、loadAffinityオブジェクトにはpodConfigオブジェクトと同等かそれ以上の制限が必要です。この場合、podConfig.nodeSelectorのラベルは、loadAffinity.nodeSelectorオブジェクトで使用されるラベルのサブセットである必要があります。 -
DPA で
podConfig.nodeSelectorオブジェクトとloadAffinity.nodeSelectorオブジェクトの両方を設定した場合、matchExpressionsフィールドとmatchLabelsフィールドは使用できません。 DPA で
podConfig.nodeSelectorオブジェクトとloadAffinity.nodeSelectorオブジェクトの両方を設定するには、次の例を参照してください。... spec: configuration: nodeAgent: enable: true uploaderType: kopia loadAffinity: - nodeSelector: matchLabels: label.io/location: 'US' label.io/gpu: 'no' podConfig: nodeSelector: label.io/gpu: 'no'
5.8.1.10. ノードエージェントの同時実行の設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスター内の各ノードで同時に実行できるノードエージェント操作の最大数を制御できます。
Data Protection Application (DPA) の次のフィールドのいずれかを使用して設定できます。
-
globalConfig: すべてのノードにおけるノードエージェントのデフォルトの同時実行制限を定義します。 -
perNodeConfig:nodeSelectorラベルに基づいて、特定のノードに対して異なる同時実行制限を指定します。これにより、特定のノードが異なるリソース容量やロールを持つ柔軟な環境が実現されます。
前提条件
-
cluster-admin権限を持つユーザーとしてログインしている。
手順
特定のノードに対して同時実行を使用する場合は、それらのノードにラベルを追加します。
$ oc label node/<node_name> label.io/instance-type='large'DPA インスタンスの同時実行フィールドを設定します。
configuration: nodeAgent: enable: true uploaderType: kopia loadConcurrency: globalConfig: 1 perNodeConfig: - nodeSelector: matchLabels: label.io/instance-type: large number: 3ここでは、以下のようになります。
globalConfig-
グローバル同時接続数を指定します。デフォルト値は 1 です。これは同時実行がなく、1 つの負荷のみが許可されることを意味します。
globalConfig値に制限はありません。 label.io/instance-type- ノードごとの同時実行性を示すラベルを指定します。
number- ノードごとの同時接続数を指定します。たとえば、インスタンスのタイプとサイズに基づき、ノードごとに多数の同時実行数を指定できます。ノードごとの同時実行数の範囲は、グローバル同時実行数と同じです。設定ファイルにノードごとの同時実行数とグローバル同時実行数が含まれている場合、ノードごとの同時実行数が優先されます。
5.8.1.11. リポジトリーメンテナンスの設定 リンクのコピーリンクがクリップボードにコピーされました!
OADP リポジトリーのメンテナンスはバックグラウンドジョブであり、ノードエージェント Pod とは別に設定できます。そのため、ノードエージェントが実行されているノードでも実行されていないノードでも、リポジトリーメンテナンス Pod をスケジュールできます。
DataProtectionApplication (DPA) カスタムリソース (CR) 内のリポジトリーメンテナンスジョブのアフィニティー設定を使用できるのは、バックアップリポジトリーとして Kopia を使用する場合だけです。
すべてのリポジトリーに影響するグローバルレベルでロードアフィニティーを設定できます。または、リポジトリーごとにロードアフィニティーを設定することもできます。グローバル設定とリポジトリーごとの設定を組み合わせて使用することもできます。
前提条件
-
cluster-admin権限を持つユーザーとしてログインしている。 - OADP Operator がインストールされている。
- DPA CR が設定されている。
手順
次の一方または両方の方法を使用して、DPA 仕様の
loadAffinityオブジェクトを設定します。グローバル設定: 次の例に示すように、すべてのリポジトリーのロードアフィニティーを設定します。
... spec: configuration: repositoryMaintenance: global: podResources: cpuRequest: "100m" cpuLimit: "200m" memoryRequest: "100Mi" memoryLimit: "200Mi" loadAffinity: - nodeSelector: matchLabels: label.io/gpu: 'no' matchExpressions: - key: label.io/location operator: In values: - US - EUここでは、以下のようになります。
リポジトリーメンテナンス-
例に示すように、
repositoryMaintenanceオブジェクトを指定します。 global-
すべてのリポジトリーのロードアフィニティーを設定するための
グローバルオブジェクトを指定します。
リポジトリーごとの設定: 次の例に示すように、リポジトリーごとにロードアフィニティーを設定します。
... spec: configuration: repositoryMaintenance: myrepositoryname: loadAffinity: - nodeSelector: matchLabels: label.io/cpu: 'yes'ここでは、以下のようになります。
私のリポジトリー名-
各リポジトリーの
repositoryMaintenanceオブジェクトを指定します。
5.8.1.12. Velero ロードアフィニティーの設定 リンクのコピーリンクがクリップボードにコピーされました!
OADP をデプロイするごとに、1 つの Velero Pod が作成されます。その主な目的は、Velero のワークロードをスケジュールすることです。Velero Pod をスケジュールするには、DataProtectionApplication (DPA) カスタムリソース (CR) 仕様の velero.podConfig.nodeSelector および velero.loadAffinity オブジェクトを使用できます。
Velero Pod を特定のノードに割り当てるには、podConfig.nodeSelector オブジェクトを使用します。velero.loadAffinity オブジェクトを設定して、Pod レベルのアフィニティーとアンチアフィニティーを指定することもできます。
OpenShift のスケジューラーがルールを適用し、Velero Pod のデプロイメントのスケジューリングを実行します。
前提条件
-
cluster-admin権限を持つユーザーとしてログインしている。 - OADP Operator がインストールされている。
- DPA CR が設定されている。
手順
次の例に示すように、DPA 仕様で
velero.podConfig.nodeSelectorおよびvelero.loadAffinityオブジェクトを設定します。velero.podConfig.nodeSelectorオブジェクトの設定:... spec: configuration: velero: podConfig: nodeSelector: some-label.io/custom-node-role: backup-corevelero.loadAffinityオブジェクトの設定:... spec: configuration: velero: loadAffinity: - nodeSelector: matchLabels: label.io/gpu: 'no' matchExpressions: - key: label.io/location operator: In values: - US - EU
5.8.1.13. DPA の imagePullPolicy 設定のオーバーライド リンクのコピーリンクがクリップボードにコピーされました!
OADP 1.4.0 以前では、Operator はすべてのイメージで Velero およびノードエージェント Pod の imagePullPolicy フィールドを Always に設定します。
OADP 1.4.1 以降では、Operator はまず、各イメージに sha256 または sha512 ダイジェストがあるかを確認し、それに応じて imagePullPolicy フィールドを設定します。
-
イメージにダイジェストがある場合、Operator は
imagePullPolicyをIfNotPresentに設定します。 -
イメージにダイジェストがない場合、Operator は
imagePullPolicyをAlwaysに設定します。
Data Protection Application (DPA) の spec.imagePullPolicy フィールドを使用して、imagePullPolicy フィールドをオーバーライドすることもできます。
前提条件
- OADP Operator がインストールされている。
手順
以下の例のように、DPA の
spec.imagePullPolicyフィールドを設定します。Data Protection Application の例
apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication metadata: name: test-dpa namespace: openshift-adp spec: backupLocations: - name: default velero: config: insecureSkipTLSVerify: "true" profile: "default" region: <bucket_region> s3ForcePathStyle: "true" s3Url: <bucket_url> credential: key: cloud name: cloud-credentials default: true objectStorage: bucket: <bucket_name> prefix: velero provider: aws configuration: nodeAgent: enable: true uploaderType: kopia velero: defaultPlugins: - openshift - aws - kubevirt - csi imagePullPolicy: Neverここでは、以下のようになります。
imagePullPolicy-
imagePullPolicyの値を指定します。この例では、imagePullPolicyフィールドがNeverに設定されています。
5.8.1.14. 複数の BSL を使用した DPA の設定 リンクのコピーリンクがクリップボードにコピーされました!
プロバイダー固有の認証情報を使用して、複数の BackupStorageLocation (BSL) リソースを使用して DataProtectionApplication (DPA) カスタムリソース (CR) を設定し、バックアップを異なる場所に保存します。これにより、バックアップの配布機能と、場所に応じた復元機能が提供されます。
たとえば、以下の 2 つの BSL を設定済みだとします。
- DPA に 1 つの BSL を設定し、それをデフォルトの BSL として設定した。
-
BackupStorageLocationCR を使用して、別の BSL を別途作成した。
DPA を通じて作成された BSL をすでにデフォルトとして設定しているため、別途作成した BSL を再度デフォルトとして設定することはできません。つまり、任意の時点において、デフォルトの BSL として設定できる BSL は 1 つだけです。
前提条件
- OADP Operator をインストールする。
- クラウドプロバイダーによって提供される認証情報を使用してシークレットを作成する。
手順
複数の
BackupStorageLocationCR を使用してDataProtectionApplicationCR を設定します。以下の例を参照してください。DPA の例
apiVersion: oadp.openshift.io/v1alpha1 kind: DataProtectionApplication #... backupLocations: - name: aws velero: provider: aws default: true objectStorage: bucket: <bucket_name> prefix: <prefix> config: region: <region_name> profile: "default" credential: key: cloud name: cloud-credentials - name: odf velero: provider: aws default: false objectStorage: bucket: <bucket_name> prefix: <prefix> config: profile: "default" region: <region_name> s3Url: <url> insecureSkipTLSVerify: "true" s3ForcePathStyle: "true" credential: key: cloud name: <custom_secret_name_odf> #...ここでは、以下のようになります。
名前: aws- 最初の BSL の名前を指定します。
デフォルト: true-
この BSL がデフォルトの BSL であることを示します。
Backup CRに BSL が設定されていない場合は、デフォルトの BSL が使用されます。デフォルトとして設定できる BSL は 1 つだけです。 <bucket_name>- バケット名を指定します。
<prefix>-
Velero バックアップのプレフィックスを指定します。たとえば、
velero。 < 地域名 >- バケットの AWS リージョンを指定します。
クラウド認証情報-
作成したデフォルトの
Secretオブジェクトの名前を指定します。 名前: odf- 2 番目の BSL の名前を指定します。
<url>- S3 エンドポイントの URL を指定します。
<custom_secret_name_odf>-
シークレットの正しい名前を指定します。たとえば、custom_secret_name_odf。Secret名を指定しない場合は、デフォルトの名前が使用されます。
バックアップ CR で使用する BSL を指定します。以下の例を参照してください。
バックアップ CR の例
apiVersion: velero.io/v1 kind: Backup # ... spec: includedNamespaces: - <namespace> storageLocation: <backup_storage_location> defaultVolumesToFsBackup: trueここでは、以下のようになります。
<namespace>- バックアップする名前空間を指定します。
< バックアップストレージの場所 >- 保存場所を指定します。
5.8.1.15. DataProtectionApplication でノードエージェントを無効にする リンクのコピーリンクがクリップボードにコピーされました!
バックアップに Restic、Kopia、または DataMover を使用していない場合は、DataProtectionApplication カスタムリソース (CR) の nodeAgent フィールドを無効にすることができます。nodeAgent を無効にする前に、OADP Operator がアイドル状態であり、バックアップを実行していないことを確認してください。
手順
nodeAgentを無効にするには、enableフラグをfalseに設定します。以下の例を参照してください。DataProtectionApplicationCR の例# ... configuration: nodeAgent: enable: false uploaderType: kopia # ...ここでは、以下のようになります。
enable- ノードエージェントを有効にします。
nodeAgentを有効にするには、enableフラグをtrueに設定します。以下の例を参照してください。DataProtectionApplicationCR の例# ... configuration: nodeAgent: enable: true uploaderType: kopia # ...ここでは、以下のようになります。
enableノードエージェントを有効にします。
ジョブをセットアップして、
DataProtectionApplicationCR のnodeAgentフィールドを有効または無効にすることができます。詳細は、「ジョブの使用による Pod でのタスクの実行」を参照してください。