9.8. OADP を使用したホステッドクラスターの自動障害復旧
ベアメタルまたは Amazon Web Services (AWS) プラットフォーム上のホステッドクラスターでは、OpenShift API for Data Protection (OADP) Operator を使用して、一部のバックアップおよび復元手順を自動化できます。
このプロセスには、以下のステップが必要です。
- OADP の設定
- Data Protection Application (DPA) の定義
- データプレーンのワークロードのバックアップ
- コントロールプレーンのワークロードのバックアップ
- OADP を使用したホステッドクラスターの復元
9.8.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
管理クラスターで次の前提条件を満たす必要があります。
- OADP Operator をインストールした。
- ストレージクラスを作成した。
-
cluster-admin
権限でクラスターにアクセスできる。 - カタログソースを通じて OADP サブスクリプションにアクセスできる。
- S3、Microsoft Azure、Google Cloud Platform、MinIO など、OADP と互換性のあるクラウドストレージプロバイダーにアクセスできる。
- 非接続環境の場合は、OADP と互換性のある Red Hat OpenShift Data Foundation や MinIO などのセルフホスト型ストレージプロバイダーにアクセスできる。
- Hosted Control Plane の Pod が稼働している。
9.8.2. OADP の設定 リンクのコピーリンクがクリップボードにコピーされました!
ホステッドクラスターが AWS 上にある場合は、「Multicloud Object Gateway を使用した OpenShift API for Data Protection の設定」の手順に従って OADP を設定します。
ホステッドクラスターがベアメタルプラットフォーム上にある場合は、「AWS S3 互換ストレージを使用した OpenShift API for Data Protection の設定」の手順に従って OADP を設定します。
9.8.3. DPA を使用したバックアップおよび復元プロセスの自動化 リンクのコピーリンクがクリップボードにコピーされました!
Data Protection Application (DPA) を使用すると、バックアップおよび復元プロセスの一部を自動化できます。DPA を使用すると、リソースのリコンシリエーションを一時停止して再起動する手順が自動化されます。DPA は、バックアップの場所や Velero Pod の設定などの情報を定義します。
DataProtectionApplication
オブジェクトを定義することで DPA を作成できます。
手順
ベアメタルプラットフォームを使用する場合は、次の手順を実行して DPA を作成できます。
次の例のようなマニフェストファイルを作成します。
例9.3
dpa.yaml
ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して DPA オブジェクトを作成します。
oc create -f dpa.yaml
$ oc create -f dpa.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DataProtectionApplication
オブジェクトを作成すると、openshift-adp
namespace に新しいvelero
デプロイメントとnode-agent
Pod が作成されます。
Amazon Web Services (AWS) を使用する場合は、次の手順を実行して DPA を作成できます。
次の例のようなマニフェストファイルを作成します。
例9.4
dpa.yaml
ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して DPA リソースを作成します。
oc create -f dpa.yaml
$ oc create -f dpa.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DataProtectionApplication
オブジェクトを作成すると、openshift-adp
namespace に新しいvelero
デプロイメントとnode-agent
Pod が作成されます。
次のステップ
- データプレーンのワークロードをバックアップします。
9.8.4. データプレーンのワークロードのバックアップ リンクのコピーリンクがクリップボードにコピーされました!
OADP Operator を使用してデータプレーンワークロードをバックアップするには、「アプリケーションのバックアップ」を参照してください。データプレーンのワークロードが重要でない場合は、この手順をスキップできます。
9.8.5. コントロールプレーンのワークロードのバックアップ リンクのコピーリンクがクリップボードにコピーされました!
Backup
カスタムリソース (CR) を作成することで、コントロールプレーンのワークロードをバックアップできます。
バックアッププロセスを監視および観察するには、「バックアップおよび復元プロセスの観察」を参照してください。
手順
Backup
CR を定義する YAML ファイルを作成します。例9.5 例:
backup-control-plane.yaml
ファイルCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
backup_resource_name
は、Backup
リソースの名前に置き換えます。- 2
- 特定の namespace を選択して、そこからオブジェクトをバックアップします。ホステッドクラスターの namespace と Hosted Control Plane の namespace を含める必要があります。
- 3
<hosted_cluster_namespace>
を、ホステッドクラスター namespace の名前 (例:clusters
) に置き換えます。- 4
<hosted_control_plane_namespace>
は、Hosted Control Plane の namespace の名前 (例:clusters-hosted
) に置き換えます。- 5
infraenv
リソースを別の namespace に作成する必要があります。バックアッププロセス中にinfraenv
リソースを削除しないでください。- 6 7
- CSI ボリュームスナップショットを有効にし、コントロールプレーンのワークロードをクラウドストレージに自動的にアップロードします。
- 8
- 永続ボリューム (PV) の
fs-backup
バックアップ方法をデフォルトとして設定します。この設定は、Container Storage Interface (CSI) ボリュームスナップショットとfs-backup
方式を組み合わせて使用する場合に便利です。
注記CSI ボリュームスナップショットを使用する場合は、PV に
backup.velero.io/backup-volumes-excludes=<pv_name>
アノテーションを追加する必要があります。次のコマンドを実行して、
Backup
CR を適用します。oc apply -f backup-control-plane.yaml
$ oc apply -f backup-control-plane.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、
status.phase
の値がCompleted
であることを確認します。oc get backups.velero.io <backup_resource_name> -n openshift-adp \ -o jsonpath='{.status.phase}'
$ oc get backups.velero.io <backup_resource_name> -n openshift-adp \ -o jsonpath='{.status.phase}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のステップ
- OADP を使用してホステッドクラスターを復元します。
9.8.6. OADP を使用したホステッドクラスターの復元 リンクのコピーリンクがクリップボードにコピーされました!
Restore
カスタムリソース (CR) を作成することで、ホステッドクラスターを復元できます。
-
インプレース更新を使用している場合、
InfraEnv
リソースには予備のノードは必要ありません。新しい管理クラスターからワーカーノードを再プロビジョニングする必要があります。 -
replace 更新を使用している場合は、ワーカーノードをデプロイするために
InfraEnv
リソース用の予備ノードがいくつか必要です。
ホステッドクラスターをバックアップした後、復元プロセスを開始するには、そのクラスターを破棄する必要があります。ノードのプロビジョニングを開始するには、ホステッドクラスターを削除する前に、データプレーン内のワークロードをバックアップする必要があります。
前提条件
- コンソールを使用したクラスターの削除 (RHACM ドキュメント) のホステッドクラスターを削除する手順を完了している。
- クラスター削除後の残りのリソースの削除 (RHACM ドキュメント) の手順を完了している。
バックアッププロセスを監視および観察するには、「バックアップおよび復元プロセスの観察」を参照してください。
手順
次のコマンドを実行して、Hosted Control Plane namespace に Pod と永続ボリューム要求 (PVC) が存在しないことを確認します。
oc get pod pvc -n <hosted_control_plane_namespace>
$ oc get pod pvc -n <hosted_control_plane_namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 予想される出力
No resources found
No resources found
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Restore
CR を定義する YAML ファイルを作成します。restore-hosted-cluster.yaml
ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要InfraEnv
リソースを別の namespace に作成する必要があります。復元プロセス中にInfraEnv
リソースを削除しないでください。新しいノードを再プロビジョニングするには、InfraEnv
リソースが必須です。次のコマンドを実行して、
Restore
CR を適用します。oc apply -f restore-hosted-cluster.yaml
$ oc apply -f restore-hosted-cluster.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
status.phase
の値がCompleted
になっているかどうかを確認します。oc get hostedcluster <hosted_cluster_name> -n <hosted_cluster_namespace> \ -o jsonpath='{.status.phase}'
$ oc get hostedcluster <hosted_cluster_name> -n <hosted_cluster_namespace> \ -o jsonpath='{.status.phase}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.8.7. バックアップと復元のプロセスの観察 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection (OADP) を使用してホステッドクラスターをバックアップおよび復元する場合は、プロセスを監視および観察できます。
手順
次のコマンドを実行して、バックアッププロセスを確認します。
watch "oc get backups.velero.io -n openshift-adp <backup_resource_name> -o jsonpath='{.status}'"
$ watch "oc get backups.velero.io -n openshift-adp <backup_resource_name> -o jsonpath='{.status}'"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、復元プロセスを確認します。
watch "oc get restores.velero.io -n openshift-adp <backup_resource_name> -o jsonpath='{.status}'"
$ watch "oc get restores.velero.io -n openshift-adp <backup_resource_name> -o jsonpath='{.status}'"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Velero ログを確認します。
oc logs -n openshift-adp -ldeploy=velero -f
$ oc logs -n openshift-adp -ldeploy=velero -f
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、すべての OADP オブジェクトの進行状況を確認します。
watch "echo BackupRepositories:;echo;oc get backuprepositories.velero.io -A;echo; echo BackupStorageLocations: ;echo; oc get backupstoragelocations.velero.io -A;echo;echo DataUploads: ;echo;oc get datauploads.velero.io -A;echo;echo DataDownloads: ;echo;oc get datadownloads.velero.io -n openshift-adp; echo;echo VolumeSnapshotLocations: ;echo;oc get volumesnapshotlocations.velero.io -A;echo;echo Backups:;echo;oc get backup -A; echo;echo Restores:;echo;oc get restore -A"
$ watch "echo BackupRepositories:;echo;oc get backuprepositories.velero.io -A;echo; echo BackupStorageLocations: ;echo; oc get backupstoragelocations.velero.io -A;echo;echo DataUploads: ;echo;oc get datauploads.velero.io -A;echo;echo DataDownloads: ;echo;oc get datadownloads.velero.io -n openshift-adp; echo;echo VolumeSnapshotLocations: ;echo;oc get volumesnapshotlocations.velero.io -A;echo;echo Backups:;echo;oc get backup -A; echo;echo Restores:;echo;oc get restore -A"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.8.8. velero CLI を使用してバックアップおよび復元リソースを記述する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection を使用する場合は、velero
コマンドラインインターフェイス (CLI) を使用して、Backup
および Restore
リソースの詳細を取得できます。
手順
次のコマンドを実行して、コンテナーから
velero
CLI を使用するためのエイリアスを作成します。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 次のコマンドを実行して、
Restore
カスタムリソース (CR) の詳細を取得します。velero restore describe <restore_resource_name> --details
$ velero restore describe <restore_resource_name> --details
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<restore_resource_name>
をRestore
リソースの名前に置き換えます。
次のコマンドを実行して、
Backup
CR の詳細を取得します。velero restore describe <backup_resource_name> --details
$ velero restore describe <backup_resource_name> --details
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<backup_resource_name>
をBackup
リソースの名前に置き換えます。