検索

8.6. OADP を使用したホストされたクラスターの障害復旧

download PDF

OpenShift API for Data Protection (OADP) Operator を使用して、Amazon Web Services (AWS) およびベアメタルで障害復旧を実行できます。

OpenShift API for Data Protection (OADP) を使用した障害復旧プロセスには、次の手順が含まれます。

  1. OADP を使用するために Amazon Web Services やベアメタルなどのプラットフォームを準備
  2. データプレーンのワークロードのバックアップ
  3. コントロールプレーンのワークロードのバックアップ
  4. OADP を使用してホストされたクラスターの復元

8.6.1. 前提条件

管理クラスターで次の前提条件を満たしている。

  • OADP Operator をインストールしている
  • ストレージクラスを作成している。
  • cluster-admin 権限でクラスターにアクセスできる。
  • カタログソースを通じて OADP サブスクリプションにアクセスできる。
  • S3、Microsoft Azure、Google Cloud Platform、MinIO など、OADP と互換性のあるクラウドストレージプロバイダーにアクセスできる。
  • 非接続環境では、OADP と互換性のある Red Hat OpenShift Data FoundationMinIO などのセルフホスト型ストレージプロバイダーにアクセスできる。
  • Hosted Control Plane Pod が実行している。

8.6.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 の設定」を参照してください。

次のステップ

  • データプレーンのワークロードのバックアップ
  • コントロールプレーンのワークロードのバックアップ

8.6.3. OADP を使用するためのベアメタルの準備

ホストされたクラスターの障害復旧を実行するには、ベアメタル上で OpenShift API for Data Protection (OADP) を使用できます。DataProtectionApplication オブジェクトを作成すると、openshift-adp namespace に新しい velero デプロイメントと node-agent Pod が作成されます。

OADP を使用するためにベアメタルを準備するには、「AWS S3 互換ストレージを使用したデータ保護用の OpenShift API の設定」を参照してください。

次のステップ

  • データプレーンのワークロードのバックアップ
  • コントロールプレーンのワークロードのバックアップ

8.6.4. データプレーンのワークロードのバックアップ

データプレーンのワークロードが重要でない場合は、この手順をスキップできます。OADP Operator を使用してデータプレーンワークロードをバックアップするには、「アプリケーションのバックアップ」を参照してください。

次のステップ

  • OADP を使用してホストされたクラスターの復元

8.6.5. コントロールプレーンのワークロードのバックアップ

Backup カスタムリソース (CR) を作成することで、コントロールプレーンのワークロードをバックアップできます。

バックアッププロセスを監視および観察するには、「バックアップおよび復元プロセスの観察」を参照してください。

手順

  1. 次のコマンドを実行して、NodePool レプリカを 0 にスケールダウンします。

    $ oc --kubeconfig <management_cluster_kubeconfig_file> \
      scale nodepool -n <hosted_cluster_namespace> \
      <node_pool_name> --replicas 0
  2. 次のコマンドを実行して、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"}]'
  3. 次のコマンドを実行して、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"}]'
  4. Backup CR を定義する YAML ファイルを作成します。

    例8.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
      - infraenv 5
      - priorityclasses
      - pdb
      - agents
      - hostedcluster
      - nodepool
      - secrets
      - services
      - deployments
      - hostedcontrolplane
      - cluster
      - agentcluster
      - agentmachinetemplate
      - agentmachine
      - machinedeployment
      - machineset
      - machine
      excludedResources: []
      storageLocation: default
      ttl: 2h0m0s
      snapshotMoveData: true 6
      datamover: "velero" 7
      defaultVolumesToFsBackup: true 8
    1
    backup_resource_nameBackup リソースの名前に置き換えます。
    2
    特定の namespace を選択して、そこからオブジェクトをバックアップします。ホストされたクラスター namespace と Hosted Control Plane 名前空間を含める必要があります。
    3
    <hosted_cluster_namespace> を、ホストされたクラスター namespace の名前 (例: clusters) に置き換えます。
    4
    <hosted_control_plane_namespace> を Hosted Control Plane 名前空間の名前 (例: 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> アノテーションを追加する必要があります。

  5. 次のコマンドを実行して、Backup CR を適用します。

    $ oc apply -f backup-control-plane.yaml

検証

  • 次のコマンドを実行して、status.phase の値が Completed になっているかどうかを確認します。

    $ oc get backup <backup_resource_name> -n openshift-adp -o jsonpath='{.status.phase}'

次のステップ

  • OADP を使用してホストされたクラスターの復元

8.6.6. OADP を使用してホストされたクラスターの復元

Restore カスタムリソース (CR) を作成することで、ホストされたクラスターを復元できます。

  • in-place 更新を使用している場合、InfraEnv にはスペアノードは必要ありません。新しい管理クラスターからワーカーノードを再プロビジョニングする必要があります。
  • replace 更新を使用している場合は、ワーカーノードをデプロイするために InfraEnv 用の予備ノードがいくつか必要です。
重要

ホストされたクラスターをバックアップした後、復元プロセスを開始するには、そのクラスターを破棄する必要があります。ノードのプロビジョニングを開始するには、ホストされたクラスターを削除する前に、データプレーン内のワークロードをバックアップする必要があります。

前提条件

バックアッププロセスを監視および観察するには、「バックアップおよび復元プロセスの観察」を参照してください。

手順

  1. 次のコマンドを実行して、Hosted Control Plane namespace に Pod と永続ボリューム要求 (PVC) が存在しないことを確認します。

    $ oc get pod pvc -n <hosted_control_plane_namespace>

    予想される出力

    No resources found

  2. Restore CR を定義する 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: true 3
      existingResourcePolicy: update 4
      excludedResources:
      - nodes
      - events
      - events.events.k8s.io
      - backups.velero.io
      - restores.velero.io
      - resticrepositories.velero.io

    1
    <restore_resource_name>Restore リソースの名前に置き換えます。
    2
    <backup_resource_name>Backup リソースの名前に置き換えます。
    3
    永続ボリューム (PV) とその Pod のリカバリーを開始します。
    4
    既存のオブジェクトがバックアップされたコンテンツで上書きされるようにします。
    重要

    infraenv リソースを別の namespace に作成する必要があります。復元プロセス中に infraenv リソースを削除しないでください。新しいノードを再プロビジョニングするには、infraenv リソースが必須です。

  3. 次のコマンドを実行して、Restore CR を適用します。

    $ oc apply -f restore-hosted-cluster.yaml
  4. 次のコマンドを実行して、status.phase の値が Completed になっているかどうかを確認します。

    $ oc get hostedcluster <hosted_cluster_name> -n <hosted_cluster_namespace> -o jsonpath='{.status.phase}'
  5. 復元プロセスが完了したら、コントロールプレーンワークロードのバックアップ中に一時停止した HostedCluster リソースおよび NodePool リソースの調整を開始します。

    1. 次のコマンドを実行して、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"}]'
    2. 次のコマンドを実行して、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"}]'
  6. 次のコマンドを実行して、NodePool リソースを必要なレプリカ数にスケーリングします。

    $ oc --kubeconfig <management_cluster_kubeconfig_file> \
      scale nodepool -n <hosted_cluster_namespace> <node_pool_name> \
      --replicas <replica_count> 1
    1
    <replica_count> を整数値 (例: 3) に置き換えます。

8.6.7. バックアップと復元のプロセスの観察

OpenShift API for Data Protection (OADP) を使用してホストされたクラスターをバックアップおよび復元する場合は、プロセスを監視および観察できます。

手順

  1. 次のコマンドを実行して、バックアッププロセスを確認します。

    $ watch "oc get backup -n openshift-adp <backup_resource_name> -o jsonpath='{.status}'"
  2. 次のコマンドを実行して、復元プロセスを確認します。

    $ watch "oc get restore -n openshift-adp <backup_resource_name> -o jsonpath='{.status}'"
  3. 次のコマンドを実行して、Velero ログを確認します。

    $ oc logs -n openshift-adp -ldeploy=velero -f
  4. 次のコマンドを実行して、すべての 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"

8.6.8. velero CLI を使用してバックアップおよび復元リソースを記述する

OpenShift API for Data Protection を使用する場合は、velero コマンドラインインターフェイス (CLI) を使用して、Backup および Restore リソースの詳細を取得できます。

手順

  1. 次のコマンドを実行して、コンテナーから velero CLI を使用するためのエイリアスを作成します。

    $ alias velero='oc -n openshift-adp exec deployment/velero -c velero -it -- ./velero'
  2. 次のコマンドを実行して、Restore カスタムリソース (CR) の詳細を取得します。

    $ velero restore describe <restore_resource_name> --details 1
    1
    <restore_resource_name>Restore リソースの名前に置き換えます。
  3. 次のコマンドを実行して、Backup CR の詳細を取得します。

    $ velero restore describe <backup_resource_name> --details 1
    1
    <backup_resource_name>Backup リソースの名前に置き換えます。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.