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、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"}]'次のコマンドを実行して、ホステッドクラスターのインフラストラクチャー ID を取得します。
$ oc get hostedcluster -n local-cluster <hosted_cluster_name> -o=jsonpath="{.spec.infraID}"次のステップで使用するインフラストラクチャー 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}]'次のコマンドを実行して、
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"}]'次のコマンドを実行して、
AgentClusterリソースのリコンシリエーションを一時停止します。$ oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate agentcluster -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused=true --all'次のコマンドを実行して、
AgentMachineリソースのリコンシリエーションを一時停止します。$ oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate agentmachine -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused=true --all'次のコマンドを実行して、
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=trueBackupCR を定義する YAML ファイルを作成します。例9.1 例:
backup-control-plane.yamlファイルapiVersion: velero.io/v1 kind: Backup metadata: name: <backup_resource_name>1 namespace: openshift-adp labels: velero.io/storage-location: default spec: hooks: {} includedNamespaces:2 - <hosted_cluster_namespace>3 - <hosted_control_plane_namespace>4 includedResources: - sa - role - rolebinding - pod - pvc - pv - bmh - configmap - infraenv5 - priorityclasses - pdb - agents - hostedcluster - nodepool - secrets - hostedcontrolplane - cluster - agentcluster - agentmachinetemplate - agentmachine - machinedeployment - machineset - machine excludedResources: [] storageLocation: default ttl: 2h0m0s snapshotMoveData: true6 datamover: "velero"7 defaultVolumesToFsBackup: true8 - 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
検証
次のコマンドを実行して、
status.phaseの値がCompletedになっているかどうかを確認します。$ oc get backups.velero.io <backup_resource_name> -n openshift-adp \ -o jsonpath='{.status.phase}'
次のステップ
- 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"}]'次のコマンドを実行して、ホステッドクラスターのインフラストラクチャー ID を取得します。
$ oc --kubeconfig <management_cluster_kubeconfig_file> \ get hostedcluster -n <hosted_cluster_namespace> \ <hosted_cluster_name> -o=jsonpath="{.spec.infraID}"- 次のステップで使用するインフラストラクチャー 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次のコマンドを実行して、
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"}]'次のコマンドを実行して、
AgentClusterリソースのリコンシリエーションを一時停止します。$ oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate agentcluster -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused=true --all次のコマンドを実行して、
AgentMachineリソースのリコンシリエーションを一時停止します。$ oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate agentmachine -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused=true --all同一の管理クラスターに対してバックアップと復元を行う場合、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=trueBackupCR を定義する YAML ファイルを作成します。例9.2 例:
backup-control-plane.yamlファイルapiVersion: velero.io/v1 kind: Backup metadata: name: <backup_resource_name>1 namespace: openshift-adp labels: velero.io/storage-location: default spec: hooks: {} includedNamespaces:2 - <hosted_cluster_namespace>3 - <hosted_control_plane_namespace>4 - <agent_namespace>5 includedResources: - sa - role - rolebinding - pod - pvc - pv - bmh - configmap - infraenv - priorityclasses - pdb - agents - hostedcluster - nodepool - secrets - services - deployments - hostedcontrolplane - cluster - agentcluster - agentmachinetemplate - agentmachine - machinedeployment - machineset - machine excludedResources: [] storageLocation: default ttl: 2h0m0s snapshotMoveData: true6 datamover: "velero"7 defaultVolumesToFsBackup: true8 - 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
検証
次のコマンドを実行して、
status.phaseの値がCompletedになっているかどうかを確認します。$ oc get backups.velero.io <backup_resource_name> -n openshift-adp \ -o jsonpath='{.status.phase}'
次のステップ
- 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>予想される出力
No resources foundRestoreCR を定義する YAML ファイルを作成します。restore-hosted-cluster.yamlファイルの例apiVersion: velero.io/v1 kind: Restore metadata: name: <restore_resource_name>1 namespace: openshift-adp spec: backupName: <backup_resource_name>2 restorePVs: true3 existingResourcePolicy: update4 excludedResources: - nodes - events - events.events.k8s.io - backups.velero.io - restores.velero.io - resticrepositories.velero.io重要infraenvリソースを別の namespace に作成する必要があります。復元プロセス中にinfraenvリソースを削除しないでください。新しいノードを再プロビジョニングするには、infraenvリソースが必須です。次のコマンドを実行して、
RestoreCR を適用します。$ oc apply -f restore-hosted-cluster.yaml次のコマンドを実行して、
status.phaseの値がCompletedになっているかどうかを確認します。$ oc get hostedcluster <hosted_cluster_name> -n <hosted_cluster_namespace> \ -o jsonpath='{.status.phase}'復元プロセスが完了したら、コントロールプレーンワークロードのバックアップ中に一時停止した
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"}]'次のコマンドを実行して、
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"}]'
コントロールプレーンワークロードのバックアップ中に一時停止したエージェントプロバイダーリソースのリコンシリエーションを開始します。
次のコマンドを実行して、
AgentClusterリソースのリコンシリエーションを開始します。$ oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate agentcluster -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused- --overwrite=true --all次のコマンドを実行して、
AgentMachineリソースのリコンシリエーションを開始します。$ oc --kubeconfig <management_cluster_kubeconfig_file> \ annotate agentmachine -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused- --overwrite=true --all
次のコマンドを実行して、
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
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ファイルの例apiVersion: velero.io/v1 kind: Restore metadata: name: <restore_resource_name>1 namespace: openshift-adp spec: includedNamespaces:2 - <hosted_cluster_namespace>3 - <hosted_control_plane_namespace>4 - <agent_namespace>5 backupName: <backup_resource_name>6 cleanupBeforeRestore: CleanupRestored veleroManagedClustersBackupName: <managed_cluster_name>7 veleroCredentialsBackupName: <credentials_backup_name> veleroResourcesBackupName: <resources_backup_name> restorePVs: true8 preserveNodePorts: true existingResourcePolicy: update9 excludedResources: - pod - nodes - events - events.events.k8s.io - backups.velero.io - restores.velero.io - resticrepositories.velero.io - pv - pvc- 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次のコマンドを実行して、
status.phaseの値がCompletedであることを確認します。$ oc --kubeconfig <restore_management_kubeconfig> \ get restore.velero.io <restore_resource_name> \ -n openshift-adp -o jsonpath='{.status.phase}'次のコマンドを実行して、すべての CR が復元されていることを確認します。
$ oc --kubeconfig <restore_management_kubeconfig> get infraenv -n <agent_namespace>$ oc --kubeconfig <restore_management_kubeconfig> get agent -n <agent_namespace>$ oc --kubeconfig <restore_management_kubeconfig> get bmh -n <agent_namespace>$ oc --kubeconfig <restore_management_kubeconfig> get hostedcluster -n <hosted_cluster_namespace>$ oc --kubeconfig <restore_management_kubeconfig> get nodepool -n <hosted_cluster_namespace>$ oc --kubeconfig <restore_management_kubeconfig> get agentmachine -n <hosted_controlplane_namespace>$ oc --kubeconfig <restore_management_kubeconfig> get agentcluster -n <hosted_controlplane_namespace>今後、新しい管理クラスターをメインの管理クラスターとして使用する予定の場合は、以下の手順を実行します。バックアップ元の管理クラスターをメインの管理クラスターとして使用する予定の場合は、「OADP を使用してホステッドクラスターを同じ管理クラスターに復元する」の手順 5 - 8 を完了します。
次のコマンドを実行して、バックアップした管理クラスターから Cluster API デプロイメントを削除します。
$ oc --kubeconfig <backup_management_kubeconfig> delete deploy cluster-api \ -n <hosted_control_plane_namespace>一度に 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"}]'次のコマンドを実行して、
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"}]'次のコマンドを実行して、Hosted Control Plane が使用可能であるとホステッドクラスターが報告していることを確認します。
$ oc --kubeconfig <restore_management_kubeconfig> get hostedcluster次のコマンドを実行して、クラスター Operator が利用可能であるとホステッドクラスターが報告していることを確認します。
$ oc get co --kubeconfig <hosted_cluster_kubeconfig>
コントロールプレーンワークロードのバックアップ中に一時停止したエージェントプロバイダーリソースのリコンシリエーションを開始します。
次のコマンドを実行して、
AgentClusterリソースのリコンシリエーションを開始します。$ oc --kubeconfig <restore_management_kubeconfig> \ annotate agentcluster -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused- --overwrite=true --all次のコマンドを実行して、
AgentMachineリソースのリコンシリエーションを開始します。$ oc --kubeconfig <restore_management_kubeconfig> \ annotate agentmachine -n <hosted_control_plane_namespace> \ cluster.x-k8s.io/paused- --overwrite=true --all次のコマンドを実行して、
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> \ get nodepool -n <hosted_cluster_namespace>出力例
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オプション: 競合が存在せず、新しい管理クラスターが引き続き機能していることを確認するには、次の手順を実行して、バックアップ管理クラスターから
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 \ <machine_name> -n <hosted_control_plane_namespace> -p \ '[{"op":"remove","path":"/metadata/finalizers"}]' \ --type=merge$ oc --kubeconfig <backup_management_kubeconfig> \ delete machine <machine_name> \ -n <hosted_control_plane_namespace>次のコマンドを実行して、
AgentClusterおよびClusterリソースを削除します。$ oc --kubeconfig <backup_management_kubeconfig> \ delete agentcluster <hosted_cluster_name> \ -n <hosted_control_plane_namespace>$ 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> \ delete cluster <cluster_name> \ -n <hosted_control_plane_namespace>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> \ delete managedcluster <hosted_cluster_name> \ -n <hosted_cluster_namespace>次のコマンドを実行して、
HostedClusterリソースを削除します。$ oc --kubeconfig <backup_management_kubeconfig> \ delete hostedcluster \ -n <hosted_cluster_namespace> <hosted_cluster_name>
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 restores.velero.io -n openshift-adp <backup_resource_name> -o jsonpath='{.status}'"次のコマンドを実行して、Velero ログを確認します。
$ oc logs -n openshift-adp -ldeploy=velero -f次のコマンドを実行して、すべての 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"
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'次のコマンドを実行して、
Restoreカスタムリソース (CR) の詳細を取得します。$ velero restore describe <restore_resource_name> --details1 - 1
<restore_resource_name>をRestoreリソースの名前に置き換えます。
次のコマンドを実行して、
BackupCR の詳細を取得します。$ velero restore describe <backup_resource_name> --details1 - 1
<backup_resource_name>をBackupリソースの名前に置き換えます。