9.7. OADP を使用したホステッドクラスターの障害復旧
OpenShift API for Data Protection (OADP) Operator を使用して、Amazon Web Services (AWS) およびベアメタルで障害復旧を実行できます。
OpenShift API for Data Protection (OADP) を使用した障害復旧プロセスには、次の手順が含まれます。
- OADP を使用するために Amazon Web Services やベアメタルなどのプラットフォームを準備
- データプレーンのワークロードのバックアップ
- コントロールプレーンのワークロードのバックアップ
- OADP を使用したホステッドクラスターの復元
9.7.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.7.2. OADP を使用するための AWS の準備 リンクのコピーリンクがクリップボードにコピーされました!
ホステッドクラスターの障害復旧を実行するには、Amazon Web Services (AWS) S3 互換ストレージで OpenShift API for Data Protection (OADP) を使用できます。DataProtectionApplication オブジェクトを作成すると、openshift-adp namespace に新しい velero デプロイメントと node-agent Pod が作成されます。
OADP を使用するために AWS を準備するには、「Multicloud Object Gateway を使用した OpenShift API for Data Protection の設定」を参照してください。
次のステップ
- データプレーンのワークロードのバックアップ
- コントロールプレーンのワークロードのバックアップ
9.7.3. OADP を使用するためのベアメタルの準備 リンクのコピーリンクがクリップボードにコピーされました!
ホステッドクラスターの障害復旧を実行するには、ベアメタル上で OpenShift API for Data Protection (OADP) を使用できます。DataProtectionApplication オブジェクトを作成すると、openshift-adp namespace に新しい velero デプロイメントと node-agent Pod が作成されます。
OADP を使用するためにベアメタルを準備するには、「AWS S3 互換ストレージを使用した OpenShift API for Data Protection の設定」を参照してください。
次のステップ
- データプレーンのワークロードのバックアップ
- コントロールプレーンのワークロードのバックアップ
9.7.4. データプレーンのワークロードのバックアップ リンクのコピーリンクがクリップボードにコピーされました!
データプレーンのワークロードが重要でない場合は、この手順をスキップできます。OADP Operator を使用してデータプレーンワークロードをバックアップするには、「アプリケーションのバックアップ」を参照してください。
次のステップ
- OADP を使用したホステッドクラスターの復元
9.7.5. コントロールプレーンのワークロードのバックアップ リンクのコピーリンクがクリップボードにコピーされました!
Backup カスタムリソース (CR) を作成することで、コントロールプレーンのワークロードをバックアップできます。手順は、プラットフォームが AWS かベアメタルかによって異なります。
9.7.5.1. AWS におけるコントロールプレーンのワークロードのバックアップ リンクのコピーリンクがクリップボードにコピーされました!
Backup カスタムリソース (CR) を作成することで、コントロールプレーンのワークロードをバックアップできます。
バックアッププロセスを監視および観察するには、「バックアップおよび復元プロセスの観察」を参照してください。
手順
次のコマンドを実行して、
HostedClusterリソースのリコンシリエーションを一時停止します。oc --kubeconfig <management_cluster_kubeconfig_file> \ patch hostedcluster -n <hosted_cluster_namespace> <hosted_cluster_name> \ --type json -p '[{"op": "add", "path": "/spec/pausedUntil", "value": "true"}]'$ oc --kubeconfig <management_cluster_kubeconfig_file> \ patch hostedcluster -n <hosted_cluster_namespace> <hosted_cluster_name> \ --type json -p '[{"op": "add", "path": "/spec/pausedUntil", "value": "true"}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ホステッドクラスターのインフラストラクチャー ID を取得します。
oc get hostedcluster -n local-cluster <hosted_cluster_name> -o=jsonpath="{.spec.infraID}"$ oc get hostedcluster -n local-cluster <hosted_cluster_name> -o=jsonpath="{.spec.infraID}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のステップで使用するインフラストラクチャー ID をメモします。
次のコマンドを実行して、
cluster.cluster.x-k8s.ioリソースのリコンシリエーションを一時停止します。oc --kubeconfig <management_cluster_kubeconfig_file> \ patch cluster.cluster.x-k8s.io \ -n local-cluster-<hosted_cluster_name> <hosted_cluster_infra_id> \ --type json -p '[{"op": "add", "path": "/spec/paused", "value": true}]'$ oc --kubeconfig <management_cluster_kubeconfig_file> \ patch cluster.cluster.x-k8s.io \ -n local-cluster-<hosted_cluster_name> <hosted_cluster_infra_id> \ --type json -p '[{"op": "add", "path": "/spec/paused", "value": true}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
NodePoolリソースのリコンシリエーションを一時停止します。oc --kubeconfig <management_cluster_kubeconfig_file> \ patch nodepool -n <hosted_cluster_namespace> <node_pool_name> \ --type json -p '[{"op": "add", "path": "/spec/pausedUntil", "value": "true"}]'$ oc --kubeconfig <management_cluster_kubeconfig_file> \ patch nodepool -n <hosted_cluster_namespace> <node_pool_name> \ --type json -p '[{"op": "add", "path": "/spec/pausedUntil", "value": "true"}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
AgentClusterリソースのリコンシリエーションを一時停止します。oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate agentcluster -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused=true --all'
$ oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate agentcluster -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused=true --all'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
AgentMachineリソースのリコンシリエーションを一時停止します。oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate agentmachine -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused=true --all'
$ oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate agentmachine -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused=true --all'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
HostedClusterリソースにアノテーションを付け、Hosted Control Plane namespace が削除されないようにします。oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate hostedcluster -n <hosted_cluster_namespace> <hosted_cluster_name> \ hypershift.openshift.io/skip-delete-hosted-controlplane-namespace=true
$ oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate hostedcluster -n <hosted_cluster_namespace> <hosted_cluster_name> \ hypershift.openshift.io/skip-delete-hosted-controlplane-namespace=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow BackupCR を定義する YAML ファイルを作成します。例9.1 例:
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>アノテーションを追加する必要があります。次のコマンドを実行して、
BackupCR を適用します。oc apply -f backup-control-plane.yaml
$ oc apply -f backup-control-plane.yamlCopy 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.7.5.2. ベアメタルプラットフォーム上におけるコントロールプレーンのワークロードのバックアップ リンクのコピーリンクがクリップボードにコピーされました!
Backup カスタムリソース (CR) を作成することで、コントロールプレーンのワークロードをバックアップできます。
バックアッププロセスを監視および観察するには、「バックアップおよび復元プロセスの観察」を参照してください。
手順
次のコマンドを実行して、
HostedClusterリソースのリコンシリエーションを一時停止します。oc --kubeconfig <management_cluster_kubeconfig_file> \ patch hostedcluster -n <hosted_cluster_namespace> <hosted_cluster_name> \ --type json -p '[{"op": "add", "path": "/spec/pausedUntil", "value": "true"}]'$ oc --kubeconfig <management_cluster_kubeconfig_file> \ patch hostedcluster -n <hosted_cluster_namespace> <hosted_cluster_name> \ --type json -p '[{"op": "add", "path": "/spec/pausedUntil", "value": "true"}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ホステッドクラスターのインフラストラクチャー ID を取得します。
oc --kubeconfig <management_cluster_kubeconfig_file> \ get hostedcluster -n <hosted_cluster_namespace> \ <hosted_cluster_name> -o=jsonpath="{.spec.infraID}"$ oc --kubeconfig <management_cluster_kubeconfig_file> \ get hostedcluster -n <hosted_cluster_namespace> \ <hosted_cluster_name> -o=jsonpath="{.spec.infraID}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 次のステップで使用するインフラストラクチャー ID をメモします。
次のコマンドを実行して、
cluster.cluster.x-k8s.ioリソースのリコンシリエーションを一時停止します。oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate cluster -n <hosted_control_plane_namespace> \ <hosted_cluster_infra_id> cluster.x-k8s.io/paused=true
$ oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate cluster -n <hosted_control_plane_namespace> \ <hosted_cluster_infra_id> cluster.x-k8s.io/paused=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
NodePoolリソースのリコンシリエーションを一時停止します。oc --kubeconfig <management_cluster_kubeconfig_file> \ patch nodepool -n <hosted_cluster_namespace> <node_pool_name> \ --type json -p '[{"op": "add", "path": "/spec/pausedUntil", "value": "true"}]'$ oc --kubeconfig <management_cluster_kubeconfig_file> \ patch nodepool -n <hosted_cluster_namespace> <node_pool_name> \ --type json -p '[{"op": "add", "path": "/spec/pausedUntil", "value": "true"}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
AgentClusterリソースのリコンシリエーションを一時停止します。oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate agentcluster -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused=true --all
$ oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate agentcluster -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused=true --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
AgentMachineリソースのリコンシリエーションを一時停止します。oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate agentmachine -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused=true --all
$ oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate agentmachine -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused=true --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow 同一の管理クラスターに対してバックアップと復元を行う場合、Hosted Control Plane namespace が削除されるのを防ぐため、以下のコマンドを実行して
HostedClusterリソースにアノテーションを付けます。oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate hostedcluster -n <hosted_cluster_namespace> <hosted_cluster_name> \ hypershift.openshift.io/skip-delete-hosted-controlplane-namespace=true
$ oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate hostedcluster -n <hosted_cluster_namespace> <hosted_cluster_name> \ hypershift.openshift.io/skip-delete-hosted-controlplane-namespace=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow BackupCR を定義する YAML ファイルを作成します。例9.2 例:
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
<agent_namespace>は、Agent、BMH、およびInfraEnvCR が配置されている namespace (例:agents) に置き換えます。- 6 7
- CSI ボリュームスナップショットを有効にし、コントロールプレーンのワークロードをクラウドストレージに自動的にアップロードします。
- 8
- 永続ボリューム (PV) の
fs-backupバックアップ方法をデフォルトとして設定します。この設定は、Container Storage Interface (CSI) ボリュームスナップショットとfs-backup方式を組み合わせて使用する場合に便利です。
注記CSI ボリュームスナップショットを使用する場合は、PV に
backup.velero.io/backup-volumes-excludes=<pv_name>アノテーションを追加する必要があります。次のコマンドを実行して、
BackupCR を適用します。oc apply -f backup-control-plane.yaml
$ oc apply -f backup-control-plane.yamlCopy 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.7.6. OADP を使用したホステッドクラスターの復元 リンクのコピーリンクがクリップボードにコピーされました!
ホステッドクラスターを同じ管理クラスターに復元することも、新しい管理クラスターに復元することもできます。
9.7.6.1. OADP を使用してホステッドクラスターを同じ管理クラスターに復元する リンクのコピーリンクがクリップボードにコピーされました!
Restore カスタムリソース (CR) を作成することで、ホステッドクラスターを復元できます。
- インプレース 更新を使用している場合、InfraEnv にスペアノードは必要ありません。新しい管理クラスターからワーカーノードを再プロビジョニングする必要があります。
- replace 更新を使用している場合は、ワーカーノードをデプロイするために InfraEnv 用の予備ノードがいくつか必要です。
ホステッドクラスターをバックアップした後、復元プロセスを開始するには、そのクラスターを破棄する必要があります。ノードのプロビジョニングを開始するには、ホステッドクラスターを削除する前に、データプレーン内のワークロードをバックアップする必要があります。
前提条件
- コンソールを使用したクラスターの削除 のホステッドクラスターを削除する手順を完了している。
- クラスター削除後の残りのリソースの削除 の手順を完了した。
バックアッププロセスを監視および観察するには、「バックアップおよび復元プロセスの観察」を参照してください。
手順
次のコマンドを実行して、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 foundCopy to Clipboard Copied! Toggle word wrap Toggle overflow RestoreCR を定義する YAML ファイルを作成します。restore-hosted-cluster.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要infraenvリソースを別の namespace に作成する必要があります。復元プロセス中にinfraenvリソースを削除しないでください。新しいノードを再プロビジョニングするには、infraenvリソースが必須です。次のコマンドを実行して、
RestoreCR を適用します。oc apply -f restore-hosted-cluster.yaml
$ oc apply -f restore-hosted-cluster.yamlCopy 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 復元プロセスが完了したら、コントロールプレーンワークロードのバックアップ中に一時停止した
HostedClusterリソースおよびNodePoolリソースのリコンシリエーションを開始します。次のコマンドを実行して、
HostedClusterリソースのリコンシリエーションを開始します。oc --kubeconfig <management_cluster_kubeconfig_file> \ patch hostedcluster -n <hosted_cluster_namespace> <hosted_cluster_name> \ --type json \ -p '[{"op": "add", "path": "/spec/pausedUntil", "value": "false"}]'$ oc --kubeconfig <management_cluster_kubeconfig_file> \ patch hostedcluster -n <hosted_cluster_namespace> <hosted_cluster_name> \ --type json \ -p '[{"op": "add", "path": "/spec/pausedUntil", "value": "false"}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
NodePoolリソースのリコンシリエーションを開始します。oc --kubeconfig <management_cluster_kubeconfig_file> \ patch nodepool -n <hosted_cluster_namespace> <node_pool_name> \ --type json \ -p '[{"op": "add", "path": "/spec/pausedUntil", "value": "false"}]'$ oc --kubeconfig <management_cluster_kubeconfig_file> \ patch nodepool -n <hosted_cluster_namespace> <node_pool_name> \ --type json \ -p '[{"op": "add", "path": "/spec/pausedUntil", "value": "false"}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
コントロールプレーンワークロードのバックアップ中に一時停止したエージェントプロバイダーリソースのリコンシリエーションを開始します。
次のコマンドを実行して、
AgentClusterリソースのリコンシリエーションを開始します。oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate agentcluster -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused- --overwrite=true --all
$ oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate agentcluster -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused- --overwrite=true --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
AgentMachineリソースのリコンシリエーションを開始します。oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate agentmachine -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused- --overwrite=true --all
$ oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate agentmachine -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused- --overwrite=true --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを実行して、
HostedClusterリソースのhypershift.openshift.io/skip-delete-hosted-controlplane-namespace-アノテーションを削除し、Hosted Control Plane namespace の手動削除を回避します。oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate hostedcluster -n <hosted_cluster_namespace> <hosted_cluster_name> \ hypershift.openshift.io/skip-delete-hosted-controlplane-namespace- \ --overwrite=true --all
$ oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate hostedcluster -n <hosted_cluster_namespace> <hosted_cluster_name> \ hypershift.openshift.io/skip-delete-hosted-controlplane-namespace- \ --overwrite=true --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.6.2. OADP を使用したホステッドクラスターの新しい管理クラスターへの復元 リンクのコピーリンクがクリップボードにコピーされました!
Restore カスタムリソース (CR) を作成することにより、ホステッドクラスターを新しい管理クラスターに復元できます。
-
インプレース更新を使用している場合、
InfraEnvリソースには予備のノードは必要ありません。代わりに、新しい管理クラスターからワーカーノードを再プロビジョニングする必要があります。 -
replace 更新を使用している場合は、ワーカーノードをデプロイするために
InfraEnvリソース用の予備ノードがいくつか必要です。
前提条件
-
OpenShift API for Data Protection (OADP) を使用するように新しい管理クラスターを設定している。
RestoreCR がバックアップストレージにアクセスできるように、新しい管理クラスターには、バックアップ元の管理クラスターと同じ Data Protection Application (DPA) が必要です。 ホステッドクラスターの DNS を解決するために、新しい管理クラスターのネットワーク設定を設定している。
- ホストの DNS は、新しい管理クラスターとホステッドクラスターの両方の IP に解決される必要があります。
- ホステッドクラスターは、新しい管理クラスターの IP に解決する必要があります。
バックアッププロセスを監視および観察するには、「バックアップおよび復元プロセスの観察」を参照してください。
バックアップを作成した管理クラスターではなく、ホステッドクラスターを復元する新しい管理クラスターで次の手順を実行します。
手順
RestoreCR を定義する YAML ファイルを作成します。restore-hosted-cluster.yamlファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<restore_resource_name>をRestoreリソースの名前に置き換えます。- 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
<agent_namespace>は、Agent、BMH、およびInfraEnvCR が配置されている namespace (例:agents) に置き換えます。- 6
<backup_resource_name>をBackupリソースの名前に置き換えます。- 7
- Red Hat Advanced Cluster Management を使用していない場合は、このフィールドを省略できます。
- 8
- 永続ボリューム (PV) とその Pod のリカバリーを開始します。
- 9
- 既存のオブジェクトがバックアップされたコンテンツで上書きされるようにします。
次のコマンドを実行して、
RestoreCR を適用します。oc --kubeconfig <restore_management_kubeconfig> apply -f restore-hosted-cluster.yaml
$ oc --kubeconfig <restore_management_kubeconfig> apply -f restore-hosted-cluster.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
status.phaseの値がCompletedであることを確認します。oc --kubeconfig <restore_management_kubeconfig> \ get restore.velero.io <restore_resource_name> \ -n openshift-adp -o jsonpath='{.status.phase}'$ oc --kubeconfig <restore_management_kubeconfig> \ get restore.velero.io <restore_resource_name> \ -n openshift-adp -o jsonpath='{.status.phase}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、すべての CR が復元されていることを確認します。
oc --kubeconfig <restore_management_kubeconfig> get infraenv -n <agent_namespace>
$ oc --kubeconfig <restore_management_kubeconfig> get infraenv -n <agent_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc --kubeconfig <restore_management_kubeconfig> get agent -n <agent_namespace>
$ oc --kubeconfig <restore_management_kubeconfig> get agent -n <agent_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc --kubeconfig <restore_management_kubeconfig> get bmh -n <agent_namespace>
$ oc --kubeconfig <restore_management_kubeconfig> get bmh -n <agent_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc --kubeconfig <restore_management_kubeconfig> get hostedcluster -n <hosted_cluster_namespace>
$ oc --kubeconfig <restore_management_kubeconfig> get hostedcluster -n <hosted_cluster_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc --kubeconfig <restore_management_kubeconfig> get nodepool -n <hosted_cluster_namespace>
$ oc --kubeconfig <restore_management_kubeconfig> get nodepool -n <hosted_cluster_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc --kubeconfig <restore_management_kubeconfig> get agentmachine -n <hosted_controlplane_namespace>
$ oc --kubeconfig <restore_management_kubeconfig> get agentmachine -n <hosted_controlplane_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc --kubeconfig <restore_management_kubeconfig> get agentcluster -n <hosted_controlplane_namespace>
$ oc --kubeconfig <restore_management_kubeconfig> get agentcluster -n <hosted_controlplane_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 今後、新しい管理クラスターをメインの管理クラスターとして使用する予定の場合は、以下の手順を実行します。バックアップ元の管理クラスターをメインの管理クラスターとして使用する予定の場合は、「OADP を使用してホステッドクラスターを同じ管理クラスターに復元する」の手順 5 - 8 を完了します。
次のコマンドを実行して、バックアップした管理クラスターから Cluster API デプロイメントを削除します。
oc --kubeconfig <backup_management_kubeconfig> delete deploy cluster-api \ -n <hosted_control_plane_namespace>
$ oc --kubeconfig <backup_management_kubeconfig> delete deploy cluster-api \ -n <hosted_control_plane_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 一度に 1 つの Cluster API のみがクラスターにアクセスできるため、この手順により、新しい管理クラスターの Cluster API が正常に機能します。
復元プロセスが完了したら、コントロールプレーンワークロードのバックアップ中に一時停止した
HostedClusterリソースおよびNodePoolリソースのリコンシリエーションを開始します。次のコマンドを実行して、
HostedClusterリソースのリコンシリエーションを開始します。oc --kubeconfig <restore_management_kubeconfig> \ patch hostedcluster -n <hosted_cluster_namespace> <hosted_cluster_name> \ --type json \ -p '[{"op": "replace", "path": "/spec/pausedUntil", "value": "false"}]'$ oc --kubeconfig <restore_management_kubeconfig> \ patch hostedcluster -n <hosted_cluster_namespace> <hosted_cluster_name> \ --type json \ -p '[{"op": "replace", "path": "/spec/pausedUntil", "value": "false"}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
NodePoolリソースのリコンシリエーションを開始します。oc --kubeconfig <restore_management_kubeconfig> \ patch nodepool -n <hosted_cluster_namespace> <node_pool_name> \ --type json \ -p '[{"op": "replace", "path": "/spec/pausedUntil", "value": "false"}]'$ oc --kubeconfig <restore_management_kubeconfig> \ patch nodepool -n <hosted_cluster_namespace> <node_pool_name> \ --type json \ -p '[{"op": "replace", "path": "/spec/pausedUntil", "value": "false"}]'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Hosted Control Plane が使用可能であるとホステッドクラスターが報告していることを確認します。
oc --kubeconfig <restore_management_kubeconfig> get hostedcluster
$ oc --kubeconfig <restore_management_kubeconfig> get hostedclusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラスター Operator が利用可能であるとホステッドクラスターが報告していることを確認します。
oc get co --kubeconfig <hosted_cluster_kubeconfig>
$ oc get co --kubeconfig <hosted_cluster_kubeconfig>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
コントロールプレーンワークロードのバックアップ中に一時停止したエージェントプロバイダーリソースのリコンシリエーションを開始します。
次のコマンドを実行して、
AgentClusterリソースのリコンシリエーションを開始します。oc --kubeconfig <restore_management_kubeconfig> \ annotate agentcluster -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused- --overwrite=true --all
$ oc --kubeconfig <restore_management_kubeconfig> \ annotate agentcluster -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused- --overwrite=true --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
AgentMachineリソースのリコンシリエーションを開始します。oc --kubeconfig <restore_management_kubeconfig> \ annotate agentmachine -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused- --overwrite=true --all
$ oc --kubeconfig <restore_management_kubeconfig> \ annotate agentmachine -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused- --overwrite=true --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
Clusterリソースのリコンシリエーションを開始します。oc --kubeconfig <restore_management_kubeconfig> \ annotate cluster -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused- --overwrite=true --all
$ oc --kubeconfig <restore_management_kubeconfig> \ annotate cluster -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused- --overwrite=true --allCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを実行して、ノードプールが予想通りに機能していることを確認します。
oc --kubeconfig <restore_management_kubeconfig> \ get nodepool -n <hosted_cluster_namespace>
$ oc --kubeconfig <restore_management_kubeconfig> \ get nodepool -n <hosted_cluster_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE hosted-0 hosted-0 3 3 False False 4.17.11 False False
NAME CLUSTER DESIRED NODES CURRENT NODES AUTOSCALING AUTOREPAIR VERSION UPDATINGVERSION UPDATINGCONFIG MESSAGE hosted-0 hosted-0 3 3 False False 4.17.11 False FalseCopy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 競合が存在せず、新しい管理クラスターが引き続き機能していることを確認するには、次の手順を実行して、バックアップ管理クラスターから
HostedClusterリソースを削除します。バックアップ元の管理クラスターの
ClusterDeploymentリソースで、次のコマンドを実行してspec.preserveOnDeleteパラメーターをtrueに設定します。oc --kubeconfig <backup_management_kubeconfig> patch \ -n <hosted_control_plane_namespace> \ ClusterDeployment/<hosted_cluster_name> -p \ '{"spec":{"preserveOnDelete":'true'}}' \ --type=merge$ oc --kubeconfig <backup_management_kubeconfig> patch \ -n <hosted_control_plane_namespace> \ ClusterDeployment/<hosted_cluster_name> -p \ '{"spec":{"preserveOnDelete":'true'}}' \ --type=mergeCopy to Clipboard Copied! Toggle word wrap Toggle overflow この手順は、ホストのプロビジョニングが解除されないようにします。
以下のコマンドを実行してマシンを削除します。
oc --kubeconfig <backup_management_kubeconfig> patch \ <machine_name> -n <hosted_control_plane_namespace> -p \ '[{"op":"remove","path":"/metadata/finalizers"}]' \ --type=merge$ oc --kubeconfig <backup_management_kubeconfig> patch \ <machine_name> -n <hosted_control_plane_namespace> -p \ '[{"op":"remove","path":"/metadata/finalizers"}]' \ --type=mergeCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc --kubeconfig <backup_management_kubeconfig> \ delete machine <machine_name> \ -n <hosted_control_plane_namespace>
$ oc --kubeconfig <backup_management_kubeconfig> \ delete machine <machine_name> \ -n <hosted_control_plane_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
AgentClusterおよびClusterリソースを削除します。oc --kubeconfig <backup_management_kubeconfig> \ delete agentcluster <hosted_cluster_name> \ -n <hosted_control_plane_namespace>
$ oc --kubeconfig <backup_management_kubeconfig> \ delete agentcluster <hosted_cluster_name> \ -n <hosted_control_plane_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc --kubeconfig <backup_management_kubeconfig> \ patch cluster <cluster_name> \ -n <hosted_control_plane_namespace> \ -p '[{"op":"remove","path":"/metadata/finalizers"}]' \ --type=json$ oc --kubeconfig <backup_management_kubeconfig> \ patch cluster <cluster_name> \ -n <hosted_control_plane_namespace> \ -p '[{"op":"remove","path":"/metadata/finalizers"}]' \ --type=jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc --kubeconfig <backup_management_kubeconfig> \ delete cluster <cluster_name> \ -n <hosted_control_plane_namespace>
$ oc --kubeconfig <backup_management_kubeconfig> \ delete cluster <cluster_name> \ -n <hosted_control_plane_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Advanced Cluster Management を使用する場合は、次のコマンドを実行してマネージドクラスターを削除します。
oc --kubeconfig <backup_management_kubeconfig> \ patch managedcluster <hosted_cluster_name> \ -n <hosted_cluster_namespace> \ -p '[{"op":"remove","path":"/metadata/finalizers"}]' \ --type=json$ oc --kubeconfig <backup_management_kubeconfig> \ patch managedcluster <hosted_cluster_name> \ -n <hosted_cluster_namespace> \ -p '[{"op":"remove","path":"/metadata/finalizers"}]' \ --type=jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc --kubeconfig <backup_management_kubeconfig> \ delete managedcluster <hosted_cluster_name> \ -n <hosted_cluster_namespace>
$ oc --kubeconfig <backup_management_kubeconfig> \ delete managedcluster <hosted_cluster_name> \ -n <hosted_cluster_namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
HostedClusterリソースを削除します。oc --kubeconfig <backup_management_kubeconfig> \ delete hostedcluster \ -n <hosted_cluster_namespace> <hosted_cluster_name>
$ oc --kubeconfig <backup_management_kubeconfig> \ delete hostedcluster \ -n <hosted_cluster_namespace> <hosted_cluster_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.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 -fCopy 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.7.8. velero CLI を使用してバックアップおよび復元リソースを記述する リンクのコピーリンクがクリップボードにコピーされました!
OpenShift API for Data Protection を使用する場合は、velero コマンドラインインターフェイス (CLI) を使用して、Backup および Restore リソースの詳細を取得できます。
手順
次のコマンドを実行して、コンテナーから
veleroCLI を使用するためのエイリアスを作成します。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> --details1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<restore_resource_name>をRestoreリソースの名前に置き換えます。
次のコマンドを実行して、
BackupCR の詳細を取得します。velero restore describe <backup_resource_name> --details
$ velero restore describe <backup_resource_name> --details1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<backup_resource_name>をBackupリソースの名前に置き換えます。