5.9. Azure を使用した OADP の設定
5.9.1. Microsoft Azure を使用した OpenShift API for Data Protection の設定 リンクのコピーリンクがクリップボードにコピーされました!
OADP Operator をインストールすることで、Microsoft Azure を使用して OpenShift API for Data Protection (OADP) をインストールします。Operator は Velero 1.16 をインストールします。
OADP 1.0.4 以降、すべての OADP 1.0.z バージョンは Migration Toolkit for Containers Operator の依存関係としてのみ使用でき、スタンドアロン Operator として使用することはできません。
Velero 向けに Azure を設定し、デフォルトの Secret
を作成し、次に、Data Protection Application をインストールします。詳細は、OADP Operator のインストール を参照してください。
制限されたネットワーク環境に OADP Operator をインストールするには、最初にデフォルトの OperatorHub ソースを無効にして、Operator カタログをミラーリングする必要があります。詳細は、非接続環境での Operator Lifecycle Manager の使用 を参照してください。
5.9.1.1. Microsoft Azure の設定 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection (OADP) 用に Microsoft Azure を設定します。
前提条件
- Azure CLI がインストールされていること。
Azure サービスを使用するツールには、Azure リソースの安全を確保するために、必ず制限された権限を付与する必要があります。そのため、Azure では、アプリケーションを完全な権限を持つユーザーとしてサインインさせる代わりに、サービスプリンシパルを提供しています。Azure サービスプリンシパルは、アプリケーション、ホストされたサービス、または自動化ツールで使用できる名前です。
このアイデンティティーはリソースへのアクセスに使用されます。
- サービスプリンシパルを作成する
- サービスプリンシパルとパスワードを使用してサインインする
- サービスプリンシパルと証明書を使用してサインインする
- サービスプリンシパルのロールを管理する
- サービスプリンシパルを使用して Azure リソースを作成する
- サービスプリンシパルの認証情報をリセットする
詳細は、Create an Azure service principal with Azure CLI を参照してください。
5.9.1.2. バックアップおよびスナップショットの場所、ならびにそのシークレットについて リンクのコピーリンクがクリップボードにコピーされました!
DataProtectionApplication
カスタムリソース (CR) で、バックアップおよびスナップショットの場所、ならびにそのシークレットを指定します。
5.9.1.2.1. バックアップの場所 リンクのコピーリンクがクリップボードにコピーされました!
バックアップの場所として、次のいずれかの AWS S3 互換オブジェクトストレージソリューションを指定できます。
- Multicloud Object Gateway (MCG)
- Red Hat Container Storage
- Ceph RADOS Gateway (別称 Ceph Object Gateway)
- Red Hat OpenShift Data Foundation
- MinIO
Velero は、オブジェクトストレージのアーカイブファイルとして、OpenShift Container Platform リソース、Kubernetes オブジェクト、および内部イメージをバックアップします。
5.9.1.2.2. スナップショットの場所 リンクのコピーリンクがクリップボードにコピーされました!
クラウドプロバイダーのネイティブスナップショット API を使用して永続ボリュームをバックアップする場合、クラウドプロバイダーをスナップショットの場所として指定する必要があります。
Container Storage Interface (CSI) スナップショットを使用する場合、CSI ドライバーを登録するために VolumeSnapshotClass
CR を作成するため、スナップショットの場所を指定する必要はありません。
File System Backup (FSB) を使用する場合、FSB がオブジェクトストレージ上にファイルシステムをバックアップするため、スナップショットの場所を指定する必要はありません。
5.9.1.2.3. シークレット リンクのコピーリンクがクリップボードにコピーされました!
バックアップとスナップショットの場所が同じ認証情報を使用する場合、またはスナップショットの場所が必要ない場合は、デフォルトの Secret
を作成します。
バックアップとスナップショットの場所で異なる認証情報を使用する場合は、次の 2 つの secret オブジェクトを作成します。
-
DataProtectionApplication
CR で指定する、バックアップの場所用のカスタムSecret
。 -
DataProtectionApplication
CR で参照されない、スナップショットの場所用のデフォルトSecret
。
Data Protection Application には、デフォルトの Secret
が必要です。作成しないと、インストールは失敗します。
インストール中にバックアップまたはスナップショットの場所を指定したくない場合は、空の credentials-velero
ファイルを使用してデフォルトの Secret
を作成できます。
5.9.1.3. Azure での OADP の認証について リンクのコピーリンクがクリップボードにコピーされました!
Azure で OADP を認証するには、次の方法を使用できます。
- シークレットベースの認証を使用する Velero 専用のサービスプリンシパル
- シークレットベースの認証を使用する Velero 専用のストレージアカウントアクセスキー
- Azure Security Token Service
5.9.1.4. サービスプリンシパルまたはストレージアカウントアクセスキーを使用する リンクのコピーリンクがクリップボードにコピーされました!
デフォルトの Secret
オブジェクトを作成し、Backup Storage Location のカスタムリソースでそれを参照します。Secret
オブジェクトの認証情報ファイルには、Azure サービスプリンシパルまたはストレージアカウントアクセスキーに関する情報を含めることができます。
Secret
のデフォルト名は cloud-credentials-azure
です。
DataProtectionApplication
カスタムリソース (CR) にはデフォルトの Secret
が必要です。作成しないと、インストールは失敗します。バックアップの場所の Secret
の名前が指定されていない場合は、デフォルトの名前が使用されます。
インストール時にバックアップ場所の認証情報を使用しない場合は、空の credentials-velero
ファイルを使用して、デフォルト名の Secret
を作成できます。
前提条件
-
cluster-admin
特権を持つユーザーとして OpenShift クラスターにアクセスできる。 - 適切な権限が付与された Azure サブスクリプションがある。
- OADP をインストールした。
- バックアップを保存するためのオブジェクトストレージを設定した。
手順
Backup Storage Location の
credentials-velero
ファイルをクラウドプロバイダーに適した形式で作成します。Azure で OADP を認証するには、次の 2 つの方法のいずれかを使用できます。
シークレットベースの認証でサービスプリンシパルを使用します。以下の例を参照してください。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ストレージアカウントアクセスキーを使用します。以下の例を参照してください。
AZURE_STORAGE_ACCOUNT_ACCESS_KEY=<azure_storage_account_access_key> AZURE_SUBSCRIPTION_ID=<azure_subscription_id> AZURE_RESOURCE_GROUP=<azure_resource_group> AZURE_CLOUD_NAME=<azure_cloud_name>
AZURE_STORAGE_ACCOUNT_ACCESS_KEY=<azure_storage_account_access_key> AZURE_SUBSCRIPTION_ID=<azure_subscription_id> AZURE_RESOURCE_GROUP=<azure_resource_group> AZURE_CLOUD_NAME=<azure_cloud_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
デフォルト名で
Secret
カスタムリソース (CR) を作成します。oc create secret generic cloud-credentials-azure -n openshift-adp --from-file cloud=credentials-velero
$ oc create secret generic cloud-credentials-azure -n openshift-adp --from-file cloud=credentials-velero
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、Data Protection Application をインストールするときに、
DataProtectionApplication
CR のspec.backupLocations.velero.credential
ブロック内のSecret
を参照します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- カスタム名を持つバックアップロケーションの
Secret
。
5.9.1.5. Azure Security Token Service 認証で OADP を使用する リンクのコピーリンクがクリップボードにコピーされました!
Microsoft Entra Workload ID を使用して、OADP バックアップおよび復元操作のために Azure ストレージにアクセスできます。この方法では、OpenShift クラスターの署名済み Kubernetes サービスアカウントトークンを使用します。このトークンは 1 時間ごとに自動的にローテーションされ、Azure Active Directory (AD) アクセストークンと交換されるため、長期的なクライアントシークレットが不要になります。
Azure Security Token Service (STS) 設定を使用するには、クラスターのインストール時に credentialsMode
フィールドを Manual
に設定する必要があります。この方法では、Cloud Credential Operator (ccoctl
) を使用して、OpenID Connect (OIDC) プロバイダー、発行者設定、ユーザー割り当てマネージド ID などのワークロードアイデンティティーインフラストラクチャーをセットアップします。
前提条件
- Microsoft Entra Workload ID が設定された OpenShift クラスターが Microsoft Azure にインストールされている。詳細は、短期認証情報を使用するように Azure クラスターを設定する を参照してください。
-
Azure CLI (
az
) がインストールおよび設定されている。 -
cluster-admin
特権を持つユーザーとして OpenShift クラスターにアクセスできる。 - 適切な権限が付与された Azure サブスクリプションがある。
OpenShift クラスターが元から Microsoft Entra Workload ID を使用してインストールされていなかった場合は、インストール後に短期認証情報を有効にできます。このインストール後の設定がサポートされているのは、Azure クラスターだけです。
手順
長期認証情報を使用してクラスターをインストールした場合は、インストール後に Microsoft Entra Workload ID 認証に切り替えることができます。詳細は、既存のクラスターで Microsoft Entra Workload ID を有効にする を参照してください。
重要既存の Azure クラスターで Microsoft Entra Workload ID を有効にした後、OADP を含め、クラウド認証情報を使用するすべてのクラスターコンポーネントを、新しい認証方法を使用するように更新する必要があります。
次の例に示すように、Azure STS 設定の環境変数を設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、OADP 用の Azure マネージド ID を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、必要な Azure ロールをマネージド ID に付与します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、Azure ストレージアカウントとコンテナーを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、OpenShift クラスターから OIDC 発行者の URL を取得します。
export SERVICE_ACCOUNT_ISSUER=$(oc get authentication.config.openshift.io cluster -o json | jq -r .spec.serviceAccountIssuer) echo "OIDC Issuer: $SERVICE_ACCOUNT_ISSUER"
export SERVICE_ACCOUNT_ISSUER=$(oc get authentication.config.openshift.io cluster -o json | jq -r .spec.serviceAccountIssuer) echo "OIDC Issuer: $SERVICE_ACCOUNT_ISSUER"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、Microsoft Entra Workload ID Federation を設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OADP の namespace が存在しない場合は、次のコマンドを実行して作成します。
oc create namespace openshift-adp
oc create namespace openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CloudStorage
CR を使用して Azure クラウドストレージリソースを作成するには、次のコマンドを実行します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、
DataProtectionApplication
(DPA) カスタムリソース (CR) を作成し、Azure STS の詳細を設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
OADP Operator Pod が実行されていることを確認します。
oc get pods -n openshift-adp
$ oc get pods -n openshift-adp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Azure ロールの割り当てを確認します。
az role assignment list --assignee ${IDENTITY_PRINCIPAL_ID} --all --query "[].roleDefinitionName" -o tsv
az role assignment list --assignee ${IDENTITY_PRINCIPAL_ID} --all --query "[].roleDefinitionName" -o tsv
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Microsoft Entra Workload ID 認証を確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - アプリケーションのバックアップを作成し、バックアップが Azure ストレージに正常に保存されていることを確認します。
Velero リソースの割り当てを設定するか、自己署名 CA 証明書を有効にして、Data Protection Application を設定できます。
5.9.1.6. Velero の CPU とメモリーのリソース割り当てを設定 リンクのコピーリンクがクリップボードにコピーされました!
DataProtectionApplication
カスタムリソース (CR) マニフェストを編集して、Velero
Pod の CPU およびメモリーリソースの割り当てを設定します。
前提条件
- OpenShift API for Data Protection (OADP) Operator がインストールされている必要があります。
手順
次の例のように、
DataProtectionApplication
CR マニフェストの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
フィールドは、推奨される最も単純な形式のノード選択制約です。指定したラベルが、各ノードのラベルと一致する必要があります。
詳細は、ノードエージェントとノードラベルの設定 を参照してください。
5.9.1.7. 自己署名 CA 証明書の有効化 リンクのコピーリンクがクリップボードにコピーされました!
certificate signed by unknown authority
エラーを防ぐために、DataProtectionApplication
カスタムリソース (CR) マニフェストを編集して、オブジェクトストレージの自己署名 CA 証明書を有効にする必要があります。
前提条件
- OpenShift API for Data Protection (OADP) Operator がインストールされている必要があります。
手順
DataProtectionApplication
CR マニフェストのspec.backupLocations.velero.objectStorage.caCert
パラメーターとspec.backupLocations.velero.config
パラメーターを編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.9.1.7.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 にマウントする予定です。
5.9.1.8. Data Protection Application のインストール リンクのコピーリンクがクリップボードにコピーされました!
DataProtectionApplication
API のインスタンスを作成して、Data Protection Application (DPA) をインストールします。
前提条件
- OADP Operator をインストールする。
- オブジェクトストレージをバックアップロケーションとして設定する必要がある。
- スナップショットを使用して PV をバックアップする場合、クラウドプロバイダーはネイティブスナップショット API または Container Storage Interface (CSI) スナップショットのいずれかをサポートする必要がある。
-
バックアップとスナップショットの場所で同じ認証情報を使用する場合は、デフォルトの名前である
cloud-credentials-azure
を使用してSecret
を作成する必要がある。 バックアップとスナップショットの場所で異なる認証情報を使用する場合は、以下のように 2 つの
Secrets
を作成する必要がある。-
バックアップの場所用のカスタム名を持つ
Secret
。このSecret
をDataProtectionApplication
CR に追加します。 -
スナップショットの場所用の別のカスタム名を持つ
Secret
。このSecret
をDataProtectionApplication
CR に追加します。
注記インストール中にバックアップまたはスナップショットの場所を指定したくない場合は、空の
credentials-velero
ファイルを使用してデフォルトのSecret
を作成できます。デフォルトのSecret
がない場合、インストールは失敗します。-
バックアップの場所用のカスタム名を持つ
手順
-
Ecosystem
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
openshift
プラグインは必須です。- 3
- Velero CRD の可用性、volumeSnapshot の削除、バックアップリポジトリーの可用性など、タイムアウトが発生するまでに複数の Velero リソースを待機する時間を分単位で指定します。デフォルトは 10m です。
- 4
- 管理要求をサーバーにルーティングする管理エージェント。
- 5
nodeAgent
を有効にして File System Backup を実行する場合は、この値をtrue
に設定します。- 6
- アップローダーとして
kopia
またはrestic
と入力します。インストール後に選択を変更することはできません。組み込み DataMover の場合は、Kopia を使用する必要があります。nodeAgent
はデーモンセットをデプロイします。これは、nodeAgent
Pod が各ワーキングノード上で実行されることを意味します。File System Backup を設定するには、spec.defaultVolumesToFsBackup: true
をBackup
CR に追加します。 - 7
- Kopia または Restic が使用可能なノードを指定します。デフォルトでは、Kopia または Restic はすべてのノードで実行されます。
- 8
- Azure リソースグループを指定します。
- 9
- Azure ストレージアカウント ID を指定します。
- 10
- Azure サブスクリプション ID を指定します。
- 11
- この値を指定しない場合は、デフォルト名の
cloud-credentials-azure
が使用されます。カスタム名を指定すると、バックアップの場所にカスタム名が使用されます。 - 12
- Backup Storage Location としてバケットを指定します。バケットが Velero バックアップ専用のバケットでない場合は、接頭辞を指定する必要があります。
- 13
- バケットが複数の目的で使用される場合は、Velero バックアップの接頭辞を指定します (例:
velero
)。 - 14
- CSI スナップショットまたは Restic を使用して PV をバックアップする場合は、スナップショットの場所を指定する必要はありません。
- 15
- 作成した
Secret
オブジェクトの名前を指定します。この値を指定しない場合は、デフォルト名のcloud-credentials-azure
が使用されます。カスタム名を指定すると、バックアップの場所にカスタム名が使用されます。
- 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
5.9.1.9. クライアントバースト設定と 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 がインストールされている。
5.9.1.10. ノードエージェントとノードラベルの設定 リンクのコピーリンクがクリップボードにコピーされました!
Data Protection Application (DPA) は、nodeSelector
フィールドを使用して、ノードエージェントを実行できるノードを選択します。nodeSelector
フィールドは、推奨される形式のノード選択制約です。
手順
カスタムラベルを追加して、選択した任意のノードでノードエージェントを実行します。
oc label node/<node_name> node-role.kubernetes.io/nodeAgent=""
$ oc label node/<node_name> node-role.kubernetes.io/nodeAgent=""
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記指定したラベルが、各ノードのラベルと一致する必要があります。
ノードのラベル付けに使用したのと同じカスタムラベルを
DPA.spec.configuration.nodeAgent.podConfig.nodeSelector
フィールドで使用します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例は
nodeSelector
のアンチパターンです。この例は、node-role.kubernetes.io/infra: ""
とnode-role.kubernetes.io/worker: ""
の両方のラベルがノードに存在しない限り機能しません。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.9.1.11. ノードエージェントのロードアフィニティーの設定 リンクのコピーリンクがクリップボードにコピーされました!
DataProtectionApplication
(DPA) カスタムリソース (CR) の spec.podConfig.nodeSelector
オブジェクトを使用して、特定のノードにノードエージェント Pod をスケジュールできます。
次の例を参照してください。この例を使用すると、ラベル label.io/role: cpu-1
および other-label.io/other-role: cpu-2
を持つノードにノードエージェント Pod をスケジュールできます。
DPA 仕様の nodeagent.loadAffinity
オブジェクトを使用して、ノードエージェント Pod のスケジューリングにさらに制限を追加できます。
前提条件
-
cluster-admin
権限を持つユーザーとしてログインしている。 - OADP Operator がインストールされている。
- DPA CR が設定されている。
手順
次の例に示すように、DPA 仕様の
nodegent.loadAffinity
オブジェクトを設定します。この例では、ラベル
label.io/role: cpu-1
とラベルlabel.io/hostname
がnode1
またはnode2
のいずれかに一致するノードにのみ、ノードエージェント Pod がスケジュールされるようにします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.9.1.12. ノードエージェントのロードアフィニティーのガイドライン リンクのコピーリンクがクリップボードにコピーされました!
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
オブジェクトの両方を設定するには、次の例を参照してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.9.1.13. ノードエージェントの同時実行の設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスター内の各ノードで同時に実行できるノードエージェント操作の最大数を制御できます。
Data Protection Application (DPA) の次のフィールドのいずれかを使用して設定できます。
-
globalConfig
: すべてのノードにおけるノードエージェントのデフォルトの同時実行制限を定義します。 -
perNodeConfig
:nodeSelector
ラベルに基づいて、特定のノードに対して異なる同時実行制限を指定します。これにより、特定のノードが異なるリソース容量やロールを持つ柔軟な環境が実現されます。
前提条件
-
cluster-admin
権限を持つユーザーとしてログインしている。
手順
特定のノードに対して同時実行を使用する場合は、それらのノードにラベルを追加します。
oc label node/<node_name> label.io/instance-type='large'
$ oc label node/<node_name> label.io/instance-type='large'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DPA インスタンスの同時実行フィールドを設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.9.1.14. ノードエージェントを非 root および非特権ユーザーとして設定する リンクのコピーリンクがクリップボードにコピーされました!
ノードエージェントのセキュリティーを強化するには、DataProtectionApplication
(DPA) カスタムリソース (CR) の spec.configuration.velero.disableFsBackup
設定を使用して、OADP Operator ノードエージェントデーモンセットを非 root および非特権ユーザーとして実行するように設定できます。
spec.configuration.velero.disableFsBackup
設定を true
に設定すると、ノードエージェントのセキュリティーコンテキストによってルートファイルシステムが読み取り専用に設定され、privileged
フラグが false
に設定されます。
spec.configuration.velero.disableFsBackup
を true
に設定すると、特権コンテナーの必要性がなくなり、読み取り専用のルートファイルシステムが適用されるため、ノードエージェントのセキュリティーが強化されます。
ただし、Kopia によるファイルシステムバックアップ (FSB) も無効になります。ワークロードがネイティブスナップショットをサポートしていないボリュームのバックアップに FSB に依存している場合は、disableFsBackup
設定がユースケースに適合するかどうかを評価する必要があります。
前提条件
- OADP Operator がインストールされている。
手順
次の例に示すように、DPA の
disableFsBackup
フィールドを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、ノードエージェントのセキュリティーコンテキストが非 root として実行するように設定され、root ファイルシステムが
readOnly
あることを確認します。oc get daemonset node-agent -o yaml
$ oc get daemonset node-agent -o yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例は次のとおりです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.9.1.15. リポジトリーメンテナンスの設定 リンクのコピーリンクがクリップボードにコピーされました!
OADP リポジトリーのメンテナンスはバックグラウンドジョブであり、ノードエージェント Pod とは別に設定できます。そのため、ノードエージェントが実行されているノードでも実行されていないノードでも、リポジトリーメンテナンス Pod をスケジュールできます。
DataProtectionApplication
(DPA) カスタムリソース (CR) 内のリポジトリーメンテナンスジョブのアフィニティー設定を使用できるのは、バックアップリポジトリーとして Kopia を使用する場合だけです。
すべてのリポジトリーに影響するグローバルレベルでロードアフィニティーを設定できます。または、リポジトリーごとにロードアフィニティーを設定することもできます。グローバル設定とリポジトリーごとの設定を組み合わせて使用することもできます。
前提条件
-
cluster-admin
権限を持つユーザーとしてログインしている。 - OADP Operator がインストールされている。
- DPA CR が設定されている。
手順
次の一方または両方の方法を使用して、DPA 仕様の
loadAffinity
オブジェクトを設定します。グローバル設定: 次の例に示すように、すべてのリポジトリーのロードアフィニティーを設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow リポジトリーごとの設定: 次の例に示すように、リポジトリーごとにロードアフィニティーを設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 各リポジトリーの
repositoryMaintenance
オブジェクトを設定します。
5.9.1.16. 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
オブジェクトの設定:Copy to Clipboard Copied! Toggle word wrap Toggle overflow velero.loadAffinity
オブジェクトの設定:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.9.1.17. 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 の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
imagePullPolicy
の値を指定します。この例では、imagePullPolicy
フィールドがNever
に設定されています。
5.9.1.17.1. DataProtectionApplication CR で CSI を有効にする リンクのコピーリンクがクリップボードにコピーされました!
CSI スナップショットを使用して永続ボリュームをバックアップするには、DataProtectionApplication
カスタムリソース (CR) で Container Storage Interface (CSI) を有効にします。
前提条件
- クラウドプロバイダーは、CSI スナップショットをサポートする必要があります。
手順
次の例のように、
DataProtectionApplication
CR を編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
csi
デフォルトプラグインを追加します。
5.9.1.17.2. DataProtectionApplication でノードエージェントを無効にする リンクのコピーリンクがクリップボードにコピーされました!
バックアップに Restic
、Kopia
、または DataMover
を使用していない場合は、DataProtectionApplication
カスタムリソース (CR) の nodeAgent
フィールドを無効にすることができます。nodeAgent
を無効にする前に、OADP Operator がアイドル状態であり、バックアップを実行していないことを確認してください。
手順
nodeAgent
を無効にするには、enable
フラグをfalse
に設定します。以下の例を参照してください。DataProtectionApplication
CR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ノードエージェントを無効にします。
nodeAgent
を有効にするには、enable
フラグをtrue
に設定します。以下の例を参照してください。DataProtectionApplication
CR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ノードエージェントを有効にします。
ジョブをセットアップして、DataProtectionApplication
CR の nodeAgent
フィールドを有効または無効にすることができます。詳細は、「ジョブの使用による Pod でのタスクの実行」を参照してください。